#php #laravel #forms #select #laravelcollective
#php #laravel #формы #выберите #laravelcollective
Вопрос:
Я хочу отредактировать task_status select, но я получаю ошибку недопустимого аргумента foreach (). Формат аналогичен другим формам из Laravel Collective.
{{Form::select('task_status', $task->task_status, [ 'On Hold'=> 'On Hold', 'Completed'=> 'Completed'], ['class' => 'form-control'])}}
Комментарии:
1. Что именно вы хотите отредактировать. Как вы делаете, чтобы получить ошибку. Можете ли вы объяснить, что вы хотите сделать лучше?
2. {{Form::select(‘task_status’, [ ‘На удержании’=> ‘На удержании’, ‘Завершено’ => ‘Завершено’], $task-> task_status, [‘class’ => ‘form-control’])}} ? Ваша последовательность для параметра неправильная .. я думаю.
Ответ №1:
ошибка недопустимого аргумента foreach().
Это произойдет только тогда, когда вы не передадите значения для заполнения выпадающего списка
Итак, вам нужно знать аргументы
function select(
$name,
$list = [],
$selected = null,
array $selectAttributes = [],
array $optionsAttributes = [],
array $optgroupsAttributes = []
)
Первый аргумент => ‘имя тега select’, в вашем случае это
task_status
Второй аргумент => ‘Выпадающий список значений’ в вашем случае его
[ 'On
Hold'=> 'On Hold', 'Completed'=> 'Completed']Третий аргумент => ‘выбранные опции’, в вашем случае это
$task->task_status
(Используется при редактировании)Четвертый аргумент => ‘необязательные атрибуты’, в вашем случае это
['class'
=> 'form-control']
Таким образом, конечная функция может выглядеть следующим образом
{!!Form::select('task_status',[ 'On Hold'=> 'On Hold', 'Completed'=> 'Completed'],$task->task_status,['class' => 'form-control'])!!}
Если вы используете
Form::model()
чтобы заполнить значения во время редактирования, вам не нужно добавлять $task->task_status
в тег select он будет загружен автоматически
ТОЛЬКО ПРИ РЕДАКТИРОВАНИИ
Ответ №2:
Как указано в их документации, вам нужно поместить значения параметра select перед значением, выбранным по умолчанию в выпадающем списке.
Следовательно, это был бы правильный синтаксис:
{{Form::select('task_status', [ 'On Hold' => 'On Hold', 'Completed' => 'Completed'], $task->task_status, ['class' => 'form-control'])}}