我正在为我的迷你项目实施一个简单的controller
。为了简化这个问题,只有两个视图很重要:create
首歌曲和edit
歌曲视图。这两个视图都包含相同的字段形式,因此我创建了一个名为partial
的表单_form
。
由于表单具有不同的 目的 - 尽管相同 字段 - 我传递给部分一些变量用于指定提交按钮标签的值,以及取消按钮路径。
例如:
edit.blade.php:
(...)
{!! Form::model($song, ['route' => ['songs.update', $song->slug], 'method' => 'PATCH']) !!}
@include('songs._form', [
'submitButtonLabel' => 'Update',
'returnRoute' => 'song_path',
'params' => [$song->slug]
])
{!! Form::close() !!}
(...)
create.blade.php:
(...)
{!! Form::open(['route' => 'songs.store']) !!}
@include('songs._form', [
'submitButtonLabel' => 'Save',
'returnRoute' => 'songs_path'
])
{!! Form::close() !!}
(...)
这是 _form.blade.php 部分:
(...)
<div class="form-group">
{!! Form::submit($submitButtonLabel, ['class' => 'btn btn-success']) !!}
{!! link_to_route($returnRoute, 'Cancel', isset($params) ? $params : [], ['class' => 'btn btn-default', 'role' => 'button']) !!}
</div>
现在,我的问题是(最后):
正如您所看到的,在我的表单部分的取消按钮中,我使用isset($params) ? $params : []
将$params
变量默认为{ {1}}未设置时。
有更好的方法吗? Here,在检查存在后回显数据下,Laravel支持这个替代回声:[]
,但这不起作用,因为我试图在{{1}内使用它已阻止......
那么,使用{{ $name or 'Default' }}
函数的{!! !!}
是否是此案例的最佳解决方案? (我目前正在使用的那个)
答案 0 :(得分:0)
您可以在create.blade.php中简单地传递变量$params
一个空数组([]
)并删除部分条件。
然后您可以在.blade文件
上设置默认值作为替代方案,您可以在控制器上设置默认值,如果未设置(您的slug),则将其作为$ params发送。
希望有所帮助