Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在用户登录后将其重定向到a页面_Php_Laravel - Fatal编程技术网

Php 在用户登录后将其重定向到a页面

Php 在用户登录后将其重定向到a页面,php,laravel,Php,Laravel,我有一个主页,它有一个链接createpost来创建一个新帖子 单击此链接时,如果用户已通过身份验证,则应允许其访问此创建帖子页面 但是,如果用户未通过身份验证,则应将用户重定向到登录/注册页面。登录后,他应该被重定向到创建帖子页面 我有下面的代码来执行此操作,但当用户没有帐户并单击“创建帖子”时,如果用户登录出现错误,他将被重定向到登录页面: Type error: Argument 2 passed to App\Http\Controllers\Auth\LoginController:

我有一个主页,它有一个链接createpost来创建一个新帖子

单击此链接时,如果用户已通过身份验证,则应允许其访问此创建帖子页面

但是,如果用户未通过身份验证,则应将用户重定向到登录/注册页面。登录后,他应该被重定向到创建帖子页面

我有下面的代码来执行此操作,但当用户没有帐户并单击“创建帖子”时,如果用户登录出现错误,他将被重定向到登录页面:

 Type error: Argument 2 passed to App\Http\Controllers\Auth\LoginController::authenticated() must be an instance of App\Http\Controllers\Auth\User, instance of App\User given.
路线:

登录控制器:

您希望使用预期的方法重定向到他们试图访问的页面

重定向器上的预期方法将用户重定向到他们在被身份验证中间件拦截之前试图访问的URL。如果预期的目的地不可用,可以为该方法提供回退URI

您看到的是由于传入了一个用户模型实例,而该实例应该是一个light\Contracts\Auth\authenticable。从方法签名中删除类型暗示,它应该可以工作:

protected function authenticated(Request $request, $user)
{
    return redirect()->intended('/createPost');
}

确保您的用户模型实现了Illumb\Contracts\Auth\Authenticatable契约。

谢谢,它适用于登录,但不适用于注册。注册表控制器的代码不应该相同吗?是的,您将对注册表执行相同的操作,使用预期重定向。完全相同的:受保护函数authenticatedRequest$request,$user{return redirect->destined'/createPost';}对吗?因为,使用该代码,当用户注册时,他将被重定向到主页,而不是创建帖子页面。'/createPost'只是一个备用路径,因此您可能希望使用return redirect->destined$this->redirectTo或类似方法。仅在预期路线不可用的情况下使用。主页或用户帐户页面将是一个安全的后备。Tks,但注册仍然不能使用该方法!
 class LoginController extends Controller
{

    use AuthenticatesUsers;


    protected $redirectTo = '/home';


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

    protected function authenticated(Request $request, User $user)
    {
        return redirect()->intended('/createPost');
    }
}
protected function authenticated(Request $request, $user)
{
    return redirect()->intended('/createPost');
}