Elemente im benutzerdefinierten Dropdown-Menü funktionieren in Yii 2 nicht richtig
P粉268284930
P粉268284930 2023-09-05 22:16:18
0
1
493

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.

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.

P粉268284930
P粉268284930

Antworte allen (1)
P粉801904089

为了实现所需的输出,其中下拉列表中的每个项目都由一个具有指定标签、值和样式的单个标签表示,您需要按照以下方式修改您的代码: 在您的视图文件中,更新customDropDown函数调用以正确传递items数组:

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数组中提取标签-值对
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!