使用 Blade 模板的 Laravel 5 表单中预选选项的条件 @if 语句

Posted

技术标签:

【中文标题】使用 Blade 模板的 Laravel 5 表单中预选选项的条件 @if 语句【英文标题】:Conditional @if statement for preselected options in Laravel 5 form using Blade templates 【发布时间】:2015-09-26 15:45:06 【问题描述】:

在使用与创建表单相同的模板创建更新表单时,我希望选择之前选择的选项。这样的事情是有道理的,但 Blade 无法解析它:

!! Form::select('number', [1, 2, 3, 4, 5] @if (!empty($at)), $at->id @endif) !!

我使用$at 变量来确定我是在更新还是创建新条目。

我可以编写 2 个单独的语句并回显任何一个相关的语句(或使用单独的模板,但我试图保持代码 DRY。

【问题讨论】:

你不一定使用Form::助手;你总是可以写一个<select name="number">...</select> 并用你的$at 逻辑来包含它。老实说(这可能是由于习惯造成的)我在 Laravel 应用程序中根本不使用 Form:: @TimLewis Form:: 这些天实际上甚至没有包含在 L5 核心中。也就是说,它具有一些方便的功能,例如在发生错误时填写旧输入。我不想回到手动做所有这些。 :-D <input type="text" name="example" value=" Input::old("example") ? Input::old("example"):"" "/> 那还不错吧? :P 或在<select> 的情况下:<option value="1" Input::old("example") == "1" ? "selected":"" >1</option> 【参考方案1】:

刀片标签内的代码只是普通的 php。这也意味着您可以在以下情况下使用速记内联:

!! Form::select('number', [1, 2, 3, 4, 5], (empty($at) ? null : $at->id)) !!

【讨论】:

以上是关于使用 Blade 模板的 Laravel 5 表单中预选选项的条件 @if 语句的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.1 Blade模板引擎

Laravel 5 - 所有模板中都可用的全局 Blade 视图变量

在 Laravel 5 Blade 模板中包含 SVG 内容

渲染 HTML 标签 Laravel 5 Blade 模板

Laravel系列5.1Blade模板开发

laravel框架总结 -- blade模板引擎