我需要在刀片文件中的Laravel lang关联{[item.document_type]}
中传递从@lang()
返回的值,但是在浏览器中出现未定义的变量错误。
{[item.doucument_type]}
返回一个字符串,该字符串是@lang()
所需的地址。
但是,当它放在方括号内时,会在下面抛出错误,它不能与$
前缀一起使用。
这里的目的是国际化。
所需结果:
{[item.filename]} - @lang('app_name.otherlanguagefile'): @lang({[item.document_type]})
错误:使用未定义的常量项目-假定为“ item”(这将引发错误 在未来的PHP版本中)
如果{[item.document_type]}
在@lang()
之外,则不会引发错误
谢谢。
答案 0 :(得分:1)
@lang
需要一个字符串,但是您传递的{[item.document_type]}
不是字符串(没有引号)也不是变量,因此PHP试图将其解释为常量。这就是错误Use of undefined constant
的来源(请注意,错误说的是未定义的常量,而不是未定义的变量)。
{[]}
不是刀片标签。除了Blade之外,您是否还在使用其他模板框架(例如javascript),还是试图向用户显示文字括号?或者这是一个错误?
我怀疑您想要@lang($item['document_type'])
或@lang($item->document_type)
之类的东西,假设item
是要传递给视图的 PHP 变量。
如果item
是 javascript 变量,则您无法从刀片服务器模板访问它,并且您试图做的事情是不可能的;您将需要一种完全不同的方法。
如果要将方括号显示给用户,则在刀片视图中需要类似{[@lang(...)]}
的内容。如果不是变量,那么您可能想要{[@lang('item.document_type')]}
答案 1 :(得分:1)
在laravel刀片文件中以两种方式使用语言文件参数。
In your file.php inside language folder
<?php
return [
'variable' => 'this is test message'
];
?>
Laravel刀片文件
{{ @lang('file.variable') }}
or
{{ trans('file.variable') }}
您的输出将是
this is test message
对于您的情况,请使用{{}}刀片发动机支架来安装laravel。 希望对您有所帮助。
答案 2 :(得分:0)
如果要将参数传递给刀片指令(例如@lang($variable)
),则不需要花括号。
{{ $item->filename }} - @lang($app_name->otherlanguagefile): @lang($item->document_type)
??