如何在@include
中为记录定义默认值?这是我的代码:
// view - questions.create
@include('questions.__answer', ['number' => 0]) // <-- 'answer' => null by DEFAULT
// view - questions.edit
@include('questions.__answer', ['number' => $index, 'answer' => $answer])
如您所见,我为Question
模型创建/编辑了视图,其中包含多个可能的答案。单个答案的html代码位于单独的部分视图中,以消除代码重复。我需要重复使用此视图来创建答案,其中应创建新记录从头开始,以及编辑现有答案,其字段应填充现有数据。
我当然可以明确地传递'answer' => null
,但我更喜欢将其传递给隐式。
答案 0 :(得分:2)
我也从来没有找到一个好方法,所以我不得不做一点点黑客。
https://github.com/laravel/framework/issues/1844
设置变量有很多方法,但选择你喜欢的。我正在使用@set
。
然后,在包含的顶部,执行此操作。
@set('number', isset($number) ? $number : null);
是的,我知道,这很糟糕。不过,我从未玩过View Composers,你可以使用它:
https://laravel.com/docs/5.1/views#view-composers
理论上,您可以使用view()
和ViewComposer来渲染与Blade内联的部分模板,并将所有令人讨厌的逻辑收集到它所属的OOP中。