@darknet37

Как сделать чтобы элемент массива отображался в html формате?

Есть фот такая функция:
public static function getStatusList()
    {
        return ["<span class='text-danger'>Активен</span>", "<span class='text-success'>Завершен</span>"];
    }

Как сделать чтобы элемент массива отображался в html формате, к примеру в dropDownList?
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
В модели:
const STATUS_BLOCKED = 0;
    const STATUS_ACTIVE = 1;

    /**
     * @return mixed
     */
    public function getStatusName()
    {
        return ArrayHelper::getValue(self::getStatusesArray(), $this->status);
    }

    /**
     * @return array
     */
    public static function getStatusesArray()
    {
        return [
            self::STATUS_ACTIVE => 'Активен',
            self::STATUS_BLOCKED => 'Завершён'
        ];
    }

В форме:
$form->field($model, 'status')->dropDownList(ModelName::getStatusesArray())

В файле view.php
'value' => Html::tag('span',
                                     $model->getStatusName(),
                                     ['class' => 'label label-' . ArrayHelper::getValue([0 => 'danger', 1 => 'success'], $model->status)])
            ]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы