页面没有正确重定向 - Laravel 7

Posted

技术标签:

【中文标题】页面没有正确重定向 - Laravel 7【英文标题】:The page isn’t redirecting properly - Laravel 7 【发布时间】:2020-10-10 12:11:04 【问题描述】:

我是 laravel 的新手,我已经实现了没有 auth:make 的登录。 现在,我正在实施身份验证(无需登录,任何人都无法访问任何页面)。

This is my routes/web.php
Route::group(['prefix' => 'locale', 'middleware' => 'setlocale'], function() 
    Route::get('/', 'UsersController@dashboard');
    Route::get('/users', 'UsersController@index');
    Route::get('/users/index', 'UsersController@index');
    Route::get('/login', 'UsersController@login');
    Route::get('/users/login', 'UsersController@login');
    //Route::get('/users/login', 'UsersController@login')->name('login');
    Route::get('/users/logout', 'UsersController@logout');

   Route::resources([
        'users' => 'UsersController',
    ]);
);

我在我的 UsersController 中添加了以下代码

public function __construct() 
    $this->middleware('auth');

下面是Middleware\Authenticate.php的代码

protected function redirectTo($request)

    if (! $request->expectsJson()) 
        return route('login', app()->getLocale());
    

但它给了我错误“Route [login] not defined。”。所以我在 routes/web.php 中添加了代码

Route::get('/users/login', 'UsersController@login')->name('login'); 但是它给了我错误:页面没有正确重定向 任何人都可以帮忙,我做错了什么或其他需要做的事情吗?谢谢。

【问题讨论】:

route() 更改为url(),因为您没有定义路由。见laravel.com/docs/7.x/urls#urls-for-named-routes 我定义了它。但是它给了我错误:页面没有正确重定向。我得到了这个问题。实际上我定义了'$this->middleware('auth');'在用户控制器中。所以登录方法不公开。并导致错误。愚蠢的错误! 【参考方案1】:

我定义了它。但是它给了我错误:页面没有正确重定向。我得到了这个问题。实际上我定义了'$this->middleware('auth');'在用户控制器中。所以登录方法不公开。并导致错误。愚蠢的错误!

【讨论】:

【参考方案2】:

在您的redirectTo 方法中,您正在调用路由辅助函数。 它使用路由名称,但您没有指定它。

您必须通过将 name 方法链接到路由定义上来为您的登录路由指定一个名称,例如:

Route::get('/login', 'UsersController@login')->name('login');

【讨论】:

以上是关于页面没有正确重定向 - Laravel 7的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 - 升级身份验证后没有正确重定向

Laravel - 具有多重身份验证的未经身份验证的重定向问题

Laravel 7:重定向到不同警卫的不同登录名

如何修复 Laravel 7 重定向导致 405 错误?

Laravel - 登录后重定向回登录页面

登录laravel 5.7后重定向到上一页