@Gregpopov
Full stack web developer

Почему TimestampBehavior в Yii2 выбрасывает ошибку?

// behavior:
'timestamp' => [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => 'created_at',
                'updatedAtAttribute' => 'updated_at',
                'value' => new Expression('NOW()'),
            ],

Ошибка:
SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'created_at' at row 1
The SQL being executed was: INSERT INTO `category` (`parent_id`, `title`, `mk`, `md`, `visibility`, `created_at`, `updated_at`, `created_id`, `updated_id`, `slug`) VALUES (NULL, 'Контроллеры шаговых двигателей', '', '', 1, NOW(), NOW(), 1, 1, 'kontrollery_sagovyh_dvigatelej')


Поля для даты
int(11)
,
все сделал по мануалу, рассинхрон в один день, плюс не добавляет дату обновления если просто пишу
return [

            TimestampBehavior::className(),
            // ...
  • Вопрос задан
  • 869 просмотров
Решения вопроса 2
artem90
@artem90
TeamLead, Developer
Попробуйте добавить в поведение

'value' => new Expression('UNIX_TIMESTAMP(NOW())'),
Ответ написан
@AlexKuznec
Я по мануалу добавил в класс модели:

public function behaviors()
{
return [
TimestampBehavior::className(),
];
}

всё работает, 'created_at' и 'updated_at' являются полями по умолчанию, их можно не указывать. заполняются текущим временем по UTC также по умолчанию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы