You need to enable JavaScript to run this app. Laravel Blade使用三元表达式报unexpected 'endif' (T_ENDIF)错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Blade使用三元表达式报unexpected 'endif' (T_ENDIF)错误如何解决?

问题解决方法

问题根因

你遇到的unexpected 'endif' (T_ENDIF)报错,是因为在Blade组件标签的属性位置直接使用{{ }}插值输出三元表达式时,和Blade的组件属性解析逻辑冲突,生成的底层PHP代码出现语法异常。同时你自定义的Checkbox组件没有显式声明接收的属性,也可能加剧解析冲突。

解决方案

方案1(推荐):使用Blade内置条件指令

Laravel 8+ 内置了@checked专用于复选框的条件属性判断,直接替换原有写法即可:

<x-checkbox name="enable" id="enable" @checked($settings->enable)>
    {{ __('Enable') }}
</x-checkbox>

该指令会自动根据表达式结果输出checked属性,无需手动写三元判断。

方案2:使用组件动态属性传参

如果你使用的Laravel版本不支持@checked指令,可以用:前缀的动态属性写法传值:

<x-checkbox name="enable" id="enable" :checked="$settings->enable">
    {{ __('Enable') }}
</x-checkbox>

可选:优化Checkbox组件写法

为了避免后续属性解析冲突,建议在你的Checkbox组件顶部显式声明接收的参数:

@props(['name', 'checked' => false])
<label class="inline-flex items-center mt-3">
    <input
        {{ $attributes->merge(['class' => 'form-checkbox h-5 w-5 rounded text-indigo-600']) }}
        name="{{ $name }}"
        id="{{ $name }}"
        type="checkbox"
        @checked($checked)
        >
    <span class="ml-2 text-gray-900 text-md font-medium">{{ $slot }}</span>
</label>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:09:02