php - 在 @lang() 中打开 PHP 标签
问题描述
我需要在刀片文件中传递从{[item.document_type]}
Laravel 语言关联内部返回的值,@lang()
但在浏览器中出现未定义变量错误。
{[item.doucument_type]}
返回一个字符串,该字符串是@lang()
.
但是,当它在括号内时,它会在下面抛出错误,它不适用于$
前缀。
这里的目的是国际化。
期望的结果:
{[item.filename]} - @lang('app_name.otherlanguagefile'): @lang({[item.document_type]})
错误:使用未定义的常量项 - 假定为“项”(这将在 PHP 的未来版本中引发错误)
{[item.document_type]}
如果在外面,错误不会抛出@lang()
提前致谢。
解决方案
@lang
需要一个字符串,但您传递{[item.document_type]}
的不是字符串(它没有被引用)而不是变量,因此 PHP 试图将其解释为常量。这就是错误Use of undefined constant
的来源(请注意,错误是 undefined constant,而不是 undefined variable)。
{[]}
不是刀片标签。除了刀片之外,您是否还在使用其他模板框架(例如 javascript),或者您是否试图向用户显示文字括号,或者这是一个错误?
我怀疑你想要类似@lang($item['document_type'])
or的东西@lang($item->document_type)
,假设item
是一个PHP变量被传递给你的视图。
如果item
是javascript变量,那么您无法从刀片模板访问它,并且您尝试做的事情是不可能的;您将需要一种完全不同的方法。
如果您希望向用户显示括号,那么您需要{[@lang(...)]}
在刀片视图中显示类似的内容。如果它不是一个变量,那么也许你想要{[@lang('item.document_type')]}
推荐阅读
- node.js - 构建 TypeScript monorepo 项目的问题
- python - 无法使用firefox驱动打开网站
- azure - hdfs dfs -setfacl 在 Azure Data Lake Store 上失败
- navigation - PugsJs 为 mixin 添加了额外的类
- javascript - 从字符串中替换所有出现的 \n\r
- oracle - 如何将 R 表导出到 Oracle 数据库
- java - 对于 api 低于 26 的设备,base 64 编码是否有替代方案?
- vb.net - 我如何将数据绑定到新的绑定
- excel - 如何使用 Excel 中的 DGET 函数从数据透视表中提取数据?
- r - 如何在 R 中的 tableGrob() 下对齐 ggparagraph() 文本