在Laravel 5.8中覆盖默认的Auth路由

问题描述 投票:0回答:3

我在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[]

我应该在路线组中的哪个位置定义它?

感谢帮助 。

laravel laravel-5 routing routes
3个回答
0
投票

Illuminate/Routing/Router.php中的这个方法并不像你那样被复制。通常,它应该与Auth Facade一起使用,如下所示:Auth::routes($options);。这称为route()方法,应该在路径文件中完成,如果你没有改变任何东西,通常是web.php

这样,确实考虑了选项。现在,在你的情况下,他们不需要一个可选的$options数组,因为你很难复制路由。

要避免路由文件中的任何错误,您有两种选择:

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

2)深入了解emailVerificationresetPassword方法以复制/粘贴它们引用的路线,并删除路线文件中对$this$options的任何引用


0
投票

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


0
投票

我绝对看到没有任何理由覆盖默认组。根据控制器的说法,只需从web.php中删除Auth::routes(),然后实现自己的路由。

© www.soinside.com 2019 - 2024. All rights reserved.