默认将值传递给@include
Pass value into @include by default
长话短说
如何为 @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
显式传递,但我更希望它隐式传递
我也从来没有找到一个很好的方法来做到这一点,所以我不得不做一些修改。
https://github.com/laravel/framework/issues/1844
设置变量的方法有很多种,选择你最喜欢的。我使用的是 @set
.
然后,在包含的顶部执行此操作。
@set('number', isset($number) ? $number : null);
是的,我知道,这很恶心。不过,我从来没有玩过 View Composer,您也许可以利用它:
https://laravel.com/docs/5.1/views#view-composers
理论上,您可以使用 view()
和 ViewComposer 来渲染与 Blade 内联的部分模板,并将所有讨厌的逻辑隐藏到它所属的 OOP 中。
长话短说
如何为 @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
显式传递,但我更希望它隐式传递
我也从来没有找到一个很好的方法来做到这一点,所以我不得不做一些修改。
https://github.com/laravel/framework/issues/1844
设置变量的方法有很多种,选择你最喜欢的。我使用的是 @set
.
然后,在包含的顶部执行此操作。
@set('number', isset($number) ? $number : null);
是的,我知道,这很恶心。不过,我从来没有玩过 View Composer,您也许可以利用它:
https://laravel.com/docs/5.1/views#view-composers
理论上,您可以使用 view()
和 ViewComposer 来渲染与 Blade 内联的部分模板,并将所有讨厌的逻辑隐藏到它所属的 OOP 中。