Laravel Auth RedirectTo 将被忽略

Laravel Auth RedirectTo will be ignored

我使用来自 Laravel 5.4 Auth 的默认 LoginController。我刚刚将 redirectTo 属性 修改为 /

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;
    protected $redirectTo = '/';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

现在我以用户身份登录。登录后重定向到 / 工作正常。 所以现在我再次转到 /login,现在 trait RedirectsUsers 将我重定向到 /home

我认为问题在于这一行的特征:

return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';

但我不明白为什么。在 LoginController 中,redirectTo 将设置为 /.

我不想覆盖供应商目录中的 RedirectsUsers 特征。

我该如何解决这个问题?

当用户登录时,使用

完成重定向
/**
 * Where to redirect users after login.
 *
 * @var string
 */
protected $redirectTo = '/';

来自 app/Http/Controllers/Auth/LoginController.php


当用户已经登录并访问 /login 页面时,重定向(到 /home)定义在 这个中间件

app/Http/Middleware/RedirectIfAuthenticated.php source

if (Auth::guard($guard)->check()) {
    return redirect('/home');
}

guest 中间件定义在 app/Http/Kernel.php source

编辑答案以回复评论

guest中间件添加到app/Http/Controllers/Auth/LoginController.phpsource

public function __construct()
{
    $this->middleware('guest')->except('logout');
}