YII 2 565
26 Июня 2017 01:21
Методы для правильного использования статусов в модели AcriveRecord YII 2

Хочу поделиться методами, которые использую абсолютно во всех проектах на Yii 2, помогают очень широко использовать статусы к записям.

    /**
     * Константы статусов
     */
    const STATUS_NOT_ACTIVE = 0;
    const STATUS_ACTIVE = 1;
    const STATUS_ARCHIVE = 2;

    /**
     * Список статусов
     * @param null $key
     * @return array
     */
    public static function getStatuses($key = null)
    {
        $items = [
            self::STATUS_ACTIVE => 'Активный',
            self::STATUS_NOT_ACTIVE => 'Не активный',
            self::STATUS_ARCHIVE => 'Архив',
        ];
        if (!is_null($key)) {
            return isset($items[$key]) ? $items[$key] : null;
        }
        return $items;
    }

    /**
     * Название статуса
     * @return string
     */
    public function getStatus()
    {
        return self::getStatuses($this->status_key);
    }

Здесь приводится код для использования свойства модели "status_key". То есть в базе мы храним поле у записи status_key, которое по типу является smallint.

Чтобы получить список статусов для выпадающего списка или радиолиста, к примеру, используем метод:

    Model::getStatuses();

Для получения статуса в текстовом формате в нужной модели вызываем метод:

    $model->getStatus();

    или

    $model->status;

Вот эти два легких метода решают ключевую роль при работе со статусами к моделям в Yii2.

Рейтинг: 1

Нет комментариев к этой записи, Вы можете добавить свой комментарий.