覆盖Laravel 5.8中的默认Auth路由

时间:2019-04-14 11:06:10

标签: laravel laravel-5 routing routes

我在我的web.php中使用默认的auth路由。

此路由复制自“ Illuminate / Routing / Router.php”。

我用它来更改默认路由,并在web.php

中使用...
Route::group([], function (){

    // Authentication Routes...
    $this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
    $this->post('login', 'Auth\LoginController@login');
    $this->post('logout', 'Auth\LoginController@logout')->name('logout');

    // Registration Routes...
    if ($options['register'] ?? true) {
        $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
        $this->post('register', 'Auth\RegisterController@register');
    }

    // Password Reset Routes...
    if ($options['reset'] ?? true) {
        $this->resetPassword();
    }

    // Email Verification Routes...
    if ($options['verify'] ?? false) {
        $this->emailVerification();
    }
});

什么是$options[]

在路线组中应在哪里定义?

感谢帮助。

3 个答案:

答案 0 :(得分:0)

$options数组用于配置here所述的注册。因此,它用于指定您是要启用还是禁用用户注册,密码重置和电子邮件验证。

答案 1 :(得分:0)

Illuminate/Routing/Router.php中的此方法不能像您那样复制。通常,它应与Auth外立面一起使用,例如:Auth::routes($options);。此调用route()方法,应在路由文件中完成,通常在web.php内完成,如果您未进行任何更改。

这样,确实可以考虑选项。现在,就您而言,因为您已硬复制了路线,所以它们不需要可选的$options数组。

为避免路由文件中出现任何错误,您有两种选择:

1)使用Auth::routes()(如果需要,可使用options数组)。当然,您可以覆盖要更改的路由。

2)挖掘emailVerificationresetPassword方法,以复制/粘贴它们引用的路由,并删除您内部对$this$options的任何引用路由文件

答案 2 :(得分:0)

我绝对认为没有任何理由要覆盖默认组。根据控制器,只需从web.php中删除Auth::routes(),并实现自己的路由即可。