在 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的主要内容,如果未能解决你的问题,请参考以下文章