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數組中提取標籤-值對