我正在为我controller
的一个小型项目实施一个简单的。为了这个问题的简单性,只有两个观点很重要:create
歌曲和edit
歌曲观点。这两个视图都包含相同的表单域,因此我创建了一个partial
名为_form
.
由于表单有不同的 用途——尽管有相同的 字段——我将几个变量传递给部分变量来指定提交按钮标签的值和取消按钮路由。
例如:
编辑刀片.php:
(...)
{!! Form::model($song, ['route' => ['songs.update', $song->slug], 'method' => 'PATCH']) !!}
@include('songs._form', [
'submitButtonLabel' => 'Update',
'returnRoute' => 'song_path',
'params' => [$song->slug]
])
{!! Form::close() !!}
(...)
创建.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>
现在,我的问题是(最后):
如您所见,在我的表单 partial的Cancel按钮中,我使用将变量默认为未设置时。isset($params) ? $params : []
$params
[]
有一个更好的方法吗?在这里,在Echoing Data After Checking For Existence下,Laravel 支持这种替代 echo: {{ $name or 'Default' }}
,但这不起作用,因为我已经尝试在{!! !!}
块内使用它......
那么,ternary operator
使用该isset()
功能是这种情况下的最佳解决方案吗?(我现在用的那个)