Сортировка по кастомному атрибуту в Yii2

Есть виджет GridView на индексной странице. Есть кастомный атрибут, выводящий значение в зависимости от результата функции. Этот атрибут прописан в модели как публичное свойство, но в гриде отображается черным без ссылки, то есть сортировка по нему невозможна.

Способы, предложенные в других похожих темах, почему-то не помогли.

Код в model

public $STATUS;
public const SENT = 'Отправлен';
public const DRAFT = 'Черновик';

Код в view

        [
            'attribute' => 'STATUS',
            'value' => function($model) {
                if (Notifications::isNotificationSended($model->ID)) {
                    $model->STATUS = Notifications::SENT;
                }
                else {
                    $model->STATUS = Notifications::DRAFT;
                }
                return $model->STATUS;  
            }           
        ],

Если указать в search model (как в этой теме - https://stackoverflow.com/questions/27936787/how-i-do-custom-yii2-gridview-sort)

$dataProvider = new ActiveDataProvider([
        'query' => $query,
        'sort' => ['attributes' => ['STATUS']],
       ]);

то ругается, что нет такого атрибута и выводит SQL ошибку.

Как я понял, я неправильно указываю атрибут? Заранее благодарю за помощь.


Ответы (0 шт):