Я реализую простой controller
для моего мини-проекта. Для простоты этого вопроса есть только два вопроса: песня create
и edit
песни. Оба эти представления содержат ту же форму полей, поэтому я создал форму partial
под названием _form
.Как установить значение по умолчанию для частичной переменной формы в Laravel
Поскольку формы имеют различныецели - несмотря на наличие жеполя - Перехожу к парциальное несколько переменных, чтобы указать значение представить метки кнопки и кнопка отмены маршрута ,
Например:
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
к []
когда он не установлен.
Есть ли лучший способ сделать это? Here под вторя данных После того, как проверка на существование, Laravel поддерживает этот альтернативный эхо: {{ $name or 'Default' }}
, но это не работает, так как я пытаюсь использовать его внутри {!! !!}
блока уже ...
Итак, это ternary operator
с помощью функция isset()
- лучшее решение для этого случая? (Тот, который я использую в настоящее время)
Да, но * это то, чего я хочу избежать. Имеет смысл не беспокоиться о передаче переменных в частичную форму, которой не существует (в данном случае '[]'). Для меня имеет смысл, что частичный «_form» должен быть ответственным за составление таких утверждений; чтобы признать, что ему нужна переменная, которая не получила, и, следовательно, по умолчанию она '[]'. Извините, я не уточнил эту деталь в вопросе. Я должен был это сделать. –