Где именно происходит заполениние created_at в модели User в Yii2?

В Yii2, заполнение поля "created_at" в модели User происходит в методе "beforeSave()" или событии "EVENT_BEFORE_INSERT".

Когда данные модели сохраняются в базе данных (в данном случае новая запись пользователя), вызывается метод "beforeSave()". Внутри метода "beforeSave()" проверяется, является ли текущая операция вставкой новой записи, а не обновлением существующей записи. Если это вставка новой записи, то в поле "created_at" присваивается текущая дата и время.

Метод "beforeSave()" может выглядеть примерно так:

use yiidbActiveRecord;

class User extends ActiveRecord
{
    public function beforeSave($insert)
    {
        if ($insert) {
            $this->created_at = date('Y-m-d H:i:s');
        }
        return parent::beforeSave($insert);
    }
}

Этот код проверяет, является ли текущая операция "вставкой" (передача аргумента "$insert" методу), и если да, то присваивает полю "created_at" текущую дату и время (используя функцию "date()").

Также, можно использовать событие "EVENT_BEFORE_INSERT" для заполнения поля "created_at" в модели User. Пример с использованием события выглядит следующим образом:

use yiidbActiveRecord;

class User extends ActiveRecord
{
    public function init()
    {
        $this->on(self::EVENT_BEFORE_INSERT, [$this, 'insertCreatedAt']);
    }
    
    public function insertCreatedAt()
    {
        $this->created_at = date('Y-m-d H:i:s');
    }
}

Здесь в методе "init()" мы регистрируем метод "insertCreatedAt()" для вызова перед вставкой новых записей. В методе "insertCreatedAt()", мы просто присваиваем полю "created_at" текущую дату и время. Это делается перед сохранением модели в базу данных, поэтому поле "created_at" будет автоматически заполнено корректными значениями при создании новых записей.

Таким образом, заполнение поля "created_at" в модели User Yii2 может быть выполнено в методе "beforeSave()" или с использованием события "EVENT_BEFORE_INSERT". Эти методы предоставляют возможность определить, когда и как заполнять это поле на основе вашей бизнес-логики.