私は私controller
のミニプロジェクトに単純なものを実装しています。この質問を簡単にするために、song ビューcreate
とedit
song ビューの 2 つのビューのみが重要です。これらのビューには両方とも同じフォームフィールド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>
さて、私の質問は(最後に):
ご覧のとおり、フォーム partialの [キャンセル] ボタンで、変数が設定されていないときに変数をデフォルトに設定しています。isset($params) ? $params : []
$params
[]
これを行うより良い方法はありますか?ここでは、 Echoing Data After Checking For Existenceの下で、Laravel はこの代替 echo:をサポートしていますが、既にブロック{{ $name or 'Default' }}
内で使用しようとしているため、これは機能しません...{!! !!}
では、関数ternary operator
を使用するisset()
ことは、この場合の最良の解決策ですか? (現在使っているもの)