Yii2 — вставка HTML-тега span2 в раскрывающийся список

У меня была небольшая проблема.
Я хочу добавить HTML-тег span в элемент списка виджета Kartik-Select2.
Идея в том, что у меня есть несколько цветов в моей БД, и я хочу показать в списке, какой цвет вы можете выбрать. Не только он. Но я использую цвета начальной загрузки и другой цвет, у меня есть два столбца (код цвета и класс).
Я надеюсь, что вы понимаете, чего я хочу, чтобы добиться этого.

Поэтому я попытался создать функцию anonymus для построения элемента списка и после span, но в операторе return это будет строка, и компилятор PHP не может разрешить это HTML-код.

Итак, мой вопрос, как я могу это сделать? Потому что в ответном заявлении я могу вернуть одну вещь. Так что я не могу вернуть имя и тег.
Так что помогите мне, если вы можете, пожалуйста.

Моя таблица цветов такова:

color_id PK int
type varchar - the color type (bootstrap, hex color etc.) for grouping
name varchar - the color name
color_code varchar - if the color is hex i store the hex code in here
class varchar - if its a bootstrap color i store the class name in here

Мой код такой:

$colors = Color::find();
if(!empty($this->types))
$colors->andWhere(['type' => $this->types]);

return Select2::widget([
'name' => $this->name,
'value' => $this->value,
'model' => $this->model,
'attribute' => $this->attribute,
'data' => ArrayHelper::map(
$colors->all(),
'color_id',
//                'name',
function ($array, $default){
/** @var $array Color */
if( !isset($array->color_code) && isset($array->class) ) {
return $array->name
. ' <span class="'
. $array->class
. '"></span>';
} elseif ( isset($array->color_code) && !isset($array->class) ) {
return $array->name
. ' <span style="background-color: '
. $array->color_code
. '"></span>';
}
},
'type'
),
'options' => $this->options,
]);

Я надеюсь, что вы могли бы записать хорошо, что я хочу. Извините мой английский не самый лучший 🙂

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]