我有不同颜色的清单。我已经成功创建了一个显示每个颜色名称的下拉列表。但是现在我的客户想在每个颜色名称的前面显示颜色标记。我的数据库中也存储了颜色代码,但是有什么方法可以在颜色名称前面显示颜色标记。
我也尝试过ArrayHelper :: map函数,如下所示
$ colours_list_array = ArrayHelper :: map($ colours_list,'id','colour_name');
但是上面显示了错误。
谁能告诉我如何在列表项前面显示颜色标志吗?
->>以下是我的数据库颜色表
->>这是我的ActiveForm颜色下拉列表输入
<?= $form->field($colours_model, 'colour_name')->dropDownList(
$colours_model->getColours(),
) ?>
根据您的代码更改函数名称
$colors = $colours_model->getColours(); //Assuming this function retrieving all records
$arrayColour = $arrayColorList = [];
foreach($colours as $colour){
$colour_id = $colour->getId(); //get 'id' column data
$colour_name = $colour->getColourName(); //Get 'colour_name' column data
$colour_code = $colour->getColourCode(); //Get 'colour_code' column data
$arrayColorList[$colour_id] = $colour_name;
$arrayColour[$colour_id] = ["style" => "background-color:$colour_code"];
}
$form->field($colours_model, 'colour_name')->dropDownList($arrayColorList, ['prompt' => 'Please select', 'options' => $arrayColour])->label(false);
检查此下拉菜单,并检查是否在每个选项列表中附加了“样式”属性。然后,首先在Chrome浏览器中对其进行测试。 Mozilla与此有关。