You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel本地化字符串中变量调用问题求助

问题原因与解决方案

嗨,这个问题其实是因为你没搞清楚Laravel翻译函数__()里字符串的解析规则~

当你写{{ __('permission.$permissions[13]') }}的时候,Laravel会把整个permission.$permissions[13]当成字面量的翻译键去查找,它不会自动解析里面的$permissions[13]变量。因为单引号包裹的字符串里,PHP是不会解析变量的,所以翻译系统找不到对应的键,就直接返回了键本身。

正确的做法有两种:

  • 字符串拼接法:先把前缀permission.和变量值拼接成完整的翻译键,再传给__()函数:

    {{ __('permission.' . $permissions[13]) }}
    

    这样就会生成permission.addUser这个正确的键,自然就能拿到Add new user的翻译结果了。

  • 双引号解析变量:用双引号包裹字符串,同时用大括号把变量包起来确保正确解析:

    {{ __("permission.{$permissions[13]}") }}
    

    这种写法PHP会解析{$permissions[13]}的值,同样能生成正确的翻译键。

简单来说,你需要先让PHP解析变量得到addUser,再和permission.组合成完整的键,而不是让翻译函数去处理未解析的变量字符串~

内容的提问来源于stack exchange,提问作者Feralheart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:15:33