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.php
source
public function __construct()
{
$this->middleware('guest')->except('logout');
}
我使用来自 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.php
source
public function __construct()
{
$this->middleware('guest')->except('logout');
}