Laravel 二手项目,语言切换问题,求解

Yesr00 · 2024-10-28 20:41:30 · 132 次点击
RT,创建了一个 SetLang 中间件, 代码如下:

if($request->input('lang')){
     app()->setLocale($request->input('lang'));
}

return $next($request);

首次设置生效,切换页面不带'lang'参的时候在控制器里用 app()->getLocale()就还是只能拿到默认语言。使用 session 也是一样。检查了中间件的顺序,应该是没什么问题,也没有其他的地方有设置语言操作。求 debug 思路
举报· 132 次点击
登录 注册 站外分享
6 条回复  
bugsnail 小成 2024-10-28 20:49:08
不知道你的 session 是怎么存的,应该顺序有问题;

抛开这个不谈,理论上每次请求都是需要在 header 上带上 lang 标识会好点
sagaxu 初学 2024-10-28 20:57:02
setLocale 只针对当前 request 生效,你要 session 级的,要在 middleware 里做
iOCZS 小成 2024-10-28 23:00:08
放 cookie 不就好了
返回顶部