php - Laravel 已登录时重定向
问题描述
基本信息 :
使用 Laravel 7.29.3
我所有的路线都需要基于用户选择的语言的语言环境。例如,一个有效的 URL 类似于www.test.com/en/home
情况 :
用户在两个选项卡 Tab1 和 Tab2 中打开了我的网站。两个标签中的相同网站。
他正在使用 Tab1 登录并获得身份验证。然后他单击 Tab2 中的登录按钮。Laravel 意识到用户已经通过身份验证并将用户重定向到www.test.com/home。
问题是www.test.com/home中没有任何语言环境并且无效。用户得到一个 404 错误。
在 Laravel LoginController 中有一个变量
protected $redirectTo = RouteServiceProvider::HOME;
但是我如何在那里获得当前选择的语言环境?我知道函数 app()->getLocale() 但是当我尝试
protected $redirectTo = app()->getLocale() . RouteServiceProvider::HOME;
我收到一条错误消息
Constant expression contains invalid operations
我已经在我的 LoginController 中添加了以下函数,但是 Laravel 在上面提到的带有两个选项卡的情况下会忽略它。
protected function redirectTo()
{
return app()->getLocale() . '/home';
}
那么如何在 redirectTo 中获取当前选择的语言环境/语言?
protected $redirectTo = RouteServiceProvider::HOME;
提前致谢
解决方案
如果对您没有帮助,这是我的第一个回复,很抱歉,但我认为在 laravel 7 中,您有一个位于 AuthenticatesUsers 特征中的方法,称为 authenticated() 这可以帮助您在用户登录后执行您想要的操作,或者只是如果未触发 redirectTo() 函数,则在控制器中创建一个方法 redirectPath() 以从 RedirectsUsers 覆盖它。
推荐阅读
- node.js - 从phonegap中的ajax调用调用node.js文件?
- netsuite - NetSuite - 删除时间输入记录
- hadoop - 跨动作动作的 oozie 变量
- c# - 到accord.net的距离和激活网络的区别
- javascript - 持有密钥的未经身份验证的用户的 Firestore 规则
- r - R中的Excel求解器 - 最小化函数
- html - 脚本标签中的 HTML 变量 - Flask
- php - Laravel 5.6 搜索表单
- powershell - 对文件压缩使用动态密码
- oracle-apps - Oracle 应用程序:找不到订单单位或主要单位的价目表