Elemente im benutzerdefinierten Dropdown-Menü funktionieren in Yii 2 nicht richtig
P粉268284930
2023-09-05 22:16:18
<p>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. </p>
<pre class="brush:php;toolbar:false;"><?= $form->customDropDown($dpForm, 'color', [
'items' =>
[
'label' => 'rot',
'Wert' => 'rot',
'Optionen' =>
'style' => 'Farbe: rot'
]
]
[
'label' => 'blau',
'Wert' => 'blau',
'Optionen' =>
'style' => 'Farbe: blau'
]
]
]
</pre>
<p>Die von mir erstellte Funktion lautet wie folgt (sie verwendet ActiveForm und befindet sich darin): </p>
<pre class="brush:php;toolbar:false;"> ö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);
}
</pre>
<p>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. </p>
<p>Der Anzeigeeffekt in <em>Inspector</em>
<pre class="brush:html;toolbar:false;"><optgroup label='0'>
<option value="label">red</option>
<option value="value">red</option>
</optgroup>
<optgroup label="optionen">
<option value="style">Farbe: rot</option>
</optgroup>
</pre>
<p>Und so weiter. Der gewünschte Effekt ist wie folgt: </p>
<pre class="brush:html;toolbar:false;"><option value="red"color: red">red</option>
</pre>
<p>Aber ich kann diesen Effekt anscheinend nicht erzielen. </p>
为了实现所需的输出,其中下拉列表中的每个项目都由一个具有指定标签、值和样式的单个
更新的方法: 在这个更新的版本中,我们直接将$options数组传递给<option>
标签表示,您需要按照以下方式修改您的代码: 在您的视图文件中,更新customDropDown
函数调用以正确传递items数组:dropDownList
方法,并使用array_column
从$items数组中提取标签-值对