在Laravel 5.3中注销后,没有优雅的解决方案可以重定向到特定页面吗?

正在调用的函数来自trait AuthenticatesUsers:

public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->flush();

    $request->session()->regenerate();

    return redirect('/');
}

This is a default function from the core of laravel. So I have to override the whole function I cannot edit the core. But isn't there a more simpler solution, cause it feel like overkill to manually logout, flush and regenerate again.

在一篇文章中找到了答案:

推荐答案

我就是这样做的.在Auth\LoginController中,您有:

use AuthenticatesUsers;

将其更改为:

use AuthenticatesUsers {
    logout as performLogout;
}

Then, define a new logout() method in your LoginController:

public function logout(Request $request)
{
    $this->performLogout($request);
    return redirect()->route('your_route');
}

当然,该特性中的常规logout()方法只有3行(用于将用户从系统中注销),因此您可以将它们复制到您的方法中,但是您应该始终遵循Dry原则(不要重复自己),并尽可能多地重用代码.

Laravel相关问答推荐

URL类图中的循环关系

如何重置laravel ui密码

Nginx上带有SSL的Laravel混响

在postgres/mysqlс中,我可以定义基于json字段的唯一索引吗?

Laravel:通过数据透视表数据限制多对多Eager 加载

Laravel 通过 API 嵌套 url 发布

使用 fetch api 时 Laravel 控制器不存在错误

Laravel 5 - 手动分页

laravel url 验证变音符号

Laravel上传文件无法写入目录

如何从 laravel 中的现有数据库创建迁移

Laravel 5.2 身份验证不起作用

Heroku CLI 安装错误:PATH 未更新,原始长度 1585 > 1024

laravel 搜索多个以空格分隔的单词

Laravel 4 - 如何将所有字段的所有验证错误消息作为 JSON struct 返回?

Laravel 模型:模型属性在哪里?

Blade 中的条件扩展

在 Laravel 中包含 bootstrap 程序

遍历 Laravel 控制器中的结果集

Laravel - 使用 Eloquent 查询构建器在 Select 中添加自定义列