Ich erstelle meine eigene Dropdown-Listenfunktion in Yii 2. Ich habe eine Funktion und eine Ansicht erstellt und in der Ansicht befinden sich mehrere Elemente in meinem Dropdown-Formular.
= $form->customDropDown($dpForm, 'color', [ 'items' => [ 'label' => 'rot', 'Wert' => 'rot', 'Optionen' => 'style' => 'Farbe: rot' ] ] [ 'label' => 'blau', 'Wert' => 'blau', 'Optionen' => 'style' => 'Farbe: blau' ] ] ]
Die von mir erstellte Funktion lautet wie folgt (sie verwendet ActiveForm und befindet sich darin):
öffentliche Funktion customDropdown($model, $attribute, $items = [], $options = []) { $value = Html::getAttributeValue($model, $attribute); $field = $this->field($model, $attribute, $options); return $this->staticOnly ? $field : $field->dropDownList($items); }
Das Problem ist, dass wenn ich mein Dropdown-Menü öffne, alles eine Option oder eine Gruppe von Optionen ist, nicht nur die Optionen mit Beschriftungen und Stilen.
Der Anzeigeeffekt in Inspector
Und so weiter. Der gewünschte Effekt ist wie folgt:
Aber ich kann diesen Effekt anscheinend nicht erzielen.
为了实现所需的输出,其中下拉列表中的每个项目都由一个具有指定标签、值和样式的单个
更新的方法: 在这个更新的版本中,我们直接将$options数组传递给标签表示,您需要按照以下方式修改您的代码: 在您的视图文件中,更新
customDropDown
函数调用以正确传递items数组:dropDownList
方法,并使用array_column
从$items数组中提取标签-值对