Laravel 10复选框组件出现unexpected end of file语法错误求助
Laravel 10 动态设置复选框组件checked属性的语法错误解决
错误原因
你直接在组件标签中使用{{ old('is_enabled') ? 'checked' : '' }}输出HTML属性的写法,不符合Laravel Blade组件的属性解析规则。Blade会将这种写法误判为组件props的绑定逻辑,进而引发语法解析异常,导致出现unexpected token "endif"错误。
解决方法
你的复选框组件已经定义了checked props,直接通过属性绑定语法传递状态即可,无需手动输出checked字符串:
修改组件调用代码
<div> <x-checkbox-input id="is_enabled" name="is_enabled" value="1" :checked="old('is_enabled')"> <label for="is_enabled" class="font-medium text-gray-900">Enabled</label> <p class="text-gray-500">Toggle the enabled state</p> </x-checkbox-input> <x-input-error class="mt-2" :messages="$errors->get('is_enabled')" /> </div>
说明
- 使用
:checked(冒号开头)是Blade的属性绑定语法,它会将old('is_enabled')的返回值作为checkedprops传递给组件。 - 组件内部已经通过
{{ $checked ? 'checked' : '' }}处理了checked属性的渲染逻辑,无需额外修改组件代码。
如果需要支持默认勾选状态(比如从数据库读取的值),可以结合old()和默认值:
:checked="old('is_enabled', $model?->is_enabled)"
内容的提问来源于stack exchange,提问作者Ryan H
相关产品推荐
相关产品推荐

