Статусы label

В модели

 /**
* Константы статуса статьи
*/
public const STATUS_YES = 'yes';
public const STATUS_NO = 'no';

// /**
// * Константа картинки
// */
// public $imageFile;


/**
* Массив статусов с названием и label
* @return array
*/
public static function getStatusArrayLabel()
{
return [
self::STATUS_YES => '<span class="label label-success">'.self::getStatusArray()[self::STATUS_YES].'</span>',
self::STATUS_NO => '<span class="label label-warning">'.self::getStatusArray()[self::STATUS_NO].'</span>',
// self::STATUS_YES => '<span class="label label-success">опубликовано</span>',
// self::STATUS_NO => '<span class="label label-warning">закрыто</span>',

];
}

/**
* Вывод названия статуса, текст+label
* 'value' => $model->statusNameLabel($model->publish_status),
*/
public static function statusNameLabel($status)
{

$states = self::getStatusArrayLabel();
return !empty($states[$status]) ? $states[$status] : $status;
}


/**
* Массив статусов с названием
* @return array
*/
public static function getStatusArray()
{
return [
self::STATUS_YES => 'опубликовано',
self::STATUS_NO => 'закрыто',

];
}

/**
* Вывод названия статуса, только текст
* 'value' => $model->statusName($model->publish_status),
*
*/
public static function statusName($status)
{
$states = self::getStatusArray();
return !empty($states[$status]) ? $states[$status] : $status;
}


в index

[
'attribute' => 'publish_status',
'format' => 'raw',
'value' => function ($model) {
/* @var $model Blog */
return $model->statusNameLabel($model->publish_status);
},
'contentOptions' => ['style'=>'max-width: 120px !important; width: 120px !important;'],
],

можно просто в Grid
[
'attribute' => 'publish_status',
'headerOptions' => ['class' => 'asas'],
'format' => 'html',
'contentOptions' => ['style' => 'text-align:center;'],
'value' => function ($model) {
return ($model->publish_status == Blog::STATUS_YES) ? '<span class="p-2 circle text-light bg-success d-inline-flex align-items-center justify-content-center"><i class="lni lni-checkmark"></i></span>' :
'<span class="p-2 circle text-light bg-primary d-inline-flex align-items-center justify-content-center"><i class="lni lni-close"></i></span>';
},
'filter' => array("10" => "Активный", "0" => "Заблокирован")
],
или
[
'attribute' => 'status',
'format' => 'html',
'value' => function ($model) {
if ($model->status === IActiveStatus::STATUS_ACTIVE) {
$class = 'label-success';
} elseif ($model->status === IActiveStatus::STATUS_INACTIVE) {
$class = 'label-warning';
} else {
$class = 'label-danger';
}
return '<span class="label ' . $class . '">' . $model->getStatus() . '</span>';
},
'filter' => Html::activeDropDownList(
$searchModel,
'status',
BlogPost::getStatusList(),
['class' => 'form-control', 'prompt' => Module::t('blog', 'PROMPT_STATUS')]
)
],
Источник: Перейти
Комментарии (0):
Чтобы оставить свой комментарий, необходимо пройти аутентификацию