Как отредактировать тег Select в Laravel Collective?

#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'])}}