P粉8019040892023-09-06 14:29:43
为了实现所需的输出,其中下拉列表中的每个项目都由一个具有指定标签、值和样式的单个<option>
标签表示,您需要按照以下方式修改您的代码:
在您的视图文件中,更新customDropDown
函数调用以正确传递items数组:
<?= $form->customDropDown($dpForm, 'color', [ [ 'label' => 'red', 'value' => 'red', 'options' => [ 'style' => 'color: red' ] ], [ 'label' => 'blue', 'value' => 'blue', 'options' => [ 'style' => 'color: blue' ] ], ] ); ?>更新的方法:
public function customDropdown($model, $attribute, $items = [], $options = []) { $value = Html::getAttributeValue($model, $attribute); $field = $this->field($model, $attribute); $options['options'] = array_column($items, 'options'); $options['prompt'] = ''; return $this->staticOnly ? $field : $field->dropDownList(array_column($items, 'label', 'value'), $options); }在这个更新的版本中,我们直接将$options数组传递给
dropDownList
方法,并使用array_column
从$items数组中提取标签-值对