如何编辑 Laravel 集体中的 Select 标签?

How to edit Select tag in Laravel Collective?

我想编辑 task_status select 但我收到无效的 foreach() 参数错误。该格式与 Laravel Collective 中的其他格式类似。

{{Form::select('task_status', $task->task_status, [ 'On Hold'=> 'On Hold', 'Completed'=> 'Completed'], ['class' => 'form-control'])}}

如他们的 documentation 所述,您需要将 select 选项值 放在 默认 select 掉落值之前向下列表。

因此,这将是正确的语法:

{{Form::select('task_status', [ 'On Hold' => 'On Hold', 'Completed' => 'Completed'], $task->task_status, ['class' => 'form-control'])}}

invalid foreach() argument error.

只有当您不传递用于填充下拉列表的值时才会发生这种情况

所以你需要知道参数

function select(
        $name,
        $list = [],
        $selected = null,
        array $selectAttributes = [],
        array $optionsAttributes = [],
        array $optgroupsAttributes = []
    )

First Argument => 'name of the select tag' in Your case its task_status

Second Argument => 'Dropdown Values List ' in Your case its [ 'On Hold'=> 'On Hold', 'Completed'=> 'Completed']

Third Argument => 'the selected option(s) ' in Your case its $task->task_status (Used while editing)

Fourth Argument => 'optional Attributes ' in Your case its ['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标签会自动加载

仅在编辑时