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

Laravel Blade中使用@lang的三元条件语法报错,求正确写法

解决Laravel中三元条件显示多语言“是/否”的语法错误问题

嗨,刚入门Laravel遇到这种语法坑太正常了,我来给你理清楚问题出在哪以及怎么解决~

你碰到的语法错误,核心原因是在Blade的echo标签{{ }}里直接混用了Blade指令@lang。Blade编译引擎会把@lang当成独立的指令解析,而不是三元表达式的一部分,所以才会抛出syntax error, unexpected '<'的错误。

下面给你两种靠谱的正确写法:

方法一:使用语言辅助函数__()(推荐)

Laravel提供了全局辅助函数__(),它和@lang指令的功能完全一致,但可以直接在PHP表达式中使用,完美适配这种三元判断的场景:

{{ $data->letter_replied == 1 ? __('global.yes') : __('global.no') }}

方法二:改用Blade条件语句

如果你更习惯用@lang指令,可以把三元逻辑拆成Blade的@if/@else结构,避开表达式嵌套指令的问题:

@if($data->letter_replied == 1)
    @lang('global.yes')
@else
    @lang('global.no')
@endif

两种写法都能实现你要的效果,第一种更简洁,适合这种简单的二元判断场景~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:04:00