我想在登录后将用户重定向到'/ details ...,但它将我重定向到'/ home'
LoginController.php
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
// Authentication passed...
return redirect()->intended('/details');
}
return redirect('/details');
}
RouterServiceProvider.php
public const HOME = '/details';
我已经尝试过了,但是还是做不到
答案 0 :(得分:3)
默认情况下,在LoginController中只需替换
protected $redirectTo = '/home';
到
protected $redirectTo = '/details';
但是,如果您使用自己的身份验证,则可以这样使用
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
// Authentication passed...
return redirect($this->redirectPath());
//return redirect()->intended('/details');
}
return redirect($this->redirectPath());
}
答案 1 :(得分:3)
在您的Auth \ LoginController.php中,您可以覆盖登录后使用的功能:
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
return redirect()->route('route.name');
}
答案 2 :(得分:1)
请尝试以下操作:
if (Auth::attempt($credentials)) {
// Authentication passed...
return redirect('/details');
}
答案 3 :(得分:0)
您需要在用户模型中添加此道具。
protected $primaryKey = 'user_id';
答案 4 :(得分:0)
Laravel 7
可以通过以下方式使用authenticated
函数:
1。更改原始功能
原始authenticated
函数存储在vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
中,如下更改:
protected function authenticated(Request $request, $user)
{
if ($user->is_superuser) {
return redirect('/admin');
}
return redirect('/');
}
2。覆盖
存储在LogniController
中的app/Http/Controllers/LoginController.php
中粘贴顶部函数。
提示::is_superuser
是users表中的一个布尔字段,显示用户是否为admin(超级用户)。