在 Laravel 背包上覆盖 RegisterController

Posted

技术标签:

【中文标题】在 Laravel 背包上覆盖 RegisterController【英文标题】:Override RegisterController on Laravel Backpack 【发布时间】:2020-05-08 18:24:20 【问题描述】:

看到vendor之后,LoginController和RegisterController控制着laravel背包中的Login和Register。所以默认情况下,config.base.setup_auth_routes 是true,我想知道如何覆盖这些控制器。

到目前为止,我已经尝试过,将“注册”路由添加到我的 RegisterController@method_name,这样它就可以避开供应商 RegisterController。但是当我尝试运行它时,它永远不会读取我的本地 RegisterController。因为除了users表之外,我还有accounts表,我在注册后放了对应用户账户的账户。因此,在 RegisterController 中创建用户之后,我还想运行一个 eloquent 来创建该注册用户的帐户。

我怎样才能做到这一点。手动编辑供应商文件绝不是一个好选择。修改本地 RegisterController 和 LoginController 不起作用。

【问题讨论】:

【参考方案1】:

你需要添加路由到 routes/web.php 只有这样它才会选择你的控制器。您可以检查所有路线 'php artisan route:list' 并找出 /register 路线指向背包的寄存器。

添加到 web.php 的路由并指向您的控制器,如下所示:

Route::post('register', [App\Http\Controllers\Auth\RegisterController::class, 'register'])->name('register')

也检查一下 -> https://backpackforlaravel.com/docs/4.1/base-about#authentication

我已经测试过了,它工作正常。

【讨论】:

以上是关于在 Laravel 背包上覆盖 RegisterController的主要内容,如果未能解决你的问题,请参考以下文章

如何在背包-laravel 的注册表单中添加更多字段?

如何使用数据库 laravel 背包中的数据更改标题

Laravel - 背包选择依赖于另一个选择

如何打开Laravel背包管理页面?

如何在laravel背包中启用软删除

Laravel 背包:坐标字段