【发布时间】:2015-10-08 05:40:34
【问题描述】:
我正在为我的一个小型项目实施一个简单的controller。为了这个问题的简单性,只有两个视图很重要:create 歌曲和 edit 歌曲视图。这两个视图都包含相同的表单fields,因此我创建了一个名为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>
现在,我的问题是(最后):
如您所见,在我的 form partial 的 Cancel 按钮中,我使用 isset($params) ? $params : [] 将 $params 变量默认为 []未设置。
有没有更好的方法来做到这一点? Here,在 检查存在后回显数据下,Laravel 支持这种替代回显:{{ $name or 'Default' }},但这不起作用,因为我已经尝试在 {!! !!} 块中使用它。 .
那么,使用isset() 函数的ternary operator 是这种情况下的最佳解决方案吗? (我现在用的那个)
【问题讨论】: