Laravel 5退出后重定向 - 如何重定向回原页面?

4

当用户成功注销后,我希望能够将其重定向回原先的页面,因为我的方法即使在注销登录后仍然可以访问。

我保护了我 PhotosController 中的每个方法,除了 @show 方法。

public function __construct()
{
    $this->middleware('auth', ['except' => 'show']);
}

为了在退出后设置重定向,我在AuthController中设置属性,如下所示:

protected $redirectAfterLogout = '/customLogoutPage';

但是我希望将用户重定向回他之前所在的页面, 因为即使没有登录也可以看到视图内容。

我尝试了以下方法:

protected $redirectAfterLogout = redirect()->back();

但我的浏览器显示:"未预期的 '(', 预期 ',' 或 ';'

如何将用户重定向回他在注销前所在的视图。


你不能让内置的AuthController来完成这个任务。你需要自己编写它的逻辑。 - ceejayoz
构建您的控制器,使其能够执行此操作... - Ajay Kulkarni
你好,谢谢。你有这方面的介绍吗? - LoveAndHappiness
2个回答

1
public function getLogout()
{
    Auth::logout();

    return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/customLogoutPage');
}

1
内置的注销方法只接受字符串,您正在向其传递一个函数。如果您希望实现此行为,则必须在您的AuthController中实现自己的注销方法。
幸运的是,这非常简单:
public function getLogout()
{
    Auth::logout();

    return redirect()->back();
}

好的。

参考以下是Laravel AuthenticatesUser 特性使用的原始函数:

/**
 * Log the user out of the application.
 *
 * @return \Illuminate\Http\Response
 */
public function getLogout()
{
    Auth::logout();

    return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接