Yii2 behaviors. Часть 2

Yii2 behaviors

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы продолжим знакомиться с темой поведений фреймворка — Yii2 behaviors, благодаря которым мы можем расширять функциональность нашего кода.

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

Для реализации нам всего-то достаточно добавить в модель поведение и указать необходимые настройки, примерно так:

use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\db\Expression;

public function behaviors(){
    return [
        [
            'class' => TimestampBehavior::className(),
            'attributes' => [
                ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
                ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
            ],
            // если вместо метки времени UNIX используется datetime:
            'value' => new Expression('NOW()'),
        ],
    ];
}

Yii2 behaviors

Давайте протестируем работу добавленного поведения, а затем пройдемся по его коду. Итак, добавим еще одну новость.

Yii2 behaviors

Отлично! В поля created_at и updated_at были автоматически записаны дата и время добавления новости. Теперь проверим работу обновления, изменив название новости.

Yii2 behaviors

Тоже все верно – при обновлении изменилось только значение поля updated_at. Теперь вернемся к коду поведения. Итак, поведение TimestampBehavior предлагается нам самим фреймворком. Собственно, этот класс мы и указали в качестве источника поведения. В качестве атрибутов мы указали, что перед добавлением записи поведение сгенерирует данные для полей created_at и updated_at. Ну а перед событием UPDATE (обновлением) – обновим значение поля updated_at. Также в качестве значения будет записан «человеческий» формат даты (по умолчанию это метка времени).

Собственно, все. Как видите, использовать готовые поведения фреймворка достаточно просто и удобно.

Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree