2016-06-13 87 views
0

期間,我得到數據庫的異常SQLSTATE [22003]。Yii2 SQLSTATE [22003]在我的yii2高級模板中插入

與此錯誤消息:

SQLSTATE [22003]:數值超出範圍:在第1行 正在執行的SQL 1264超出範圍值的列 'created_at' 是:INSERT INTO userusernameemailpassword_hashauth_keystatuscreated_atupdated_at)VALUES( '測試', '[email protected]', 'someval', 'someval',10,NOW(),NOW())

我檢查了導致這個異常的字段(我假設它是日期字段created_at和updated_at),它們都是int(20)。

模型

我時間戳行爲:

/** 
* @inheritdoc 
*/ 
public function behaviors() 
{ 
    return [ 
     [ 
      'class' => TimestampBehavior::className(), 
      'attributes' => [ 
       ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'], 
       ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'], 
      ], 
      'value' => new \yii\db\Expression('NOW()') 
     ], 
    ]; 
} 

我真的不知道是什麼導致這個錯誤。這是yii2高級模板中插入的標準註冊功能。

在此先感謝您的幫助

回答

1

NOW()值不整的像2016-06-13 13:36:28這不是整數,那麼改變你的表作爲時間戳,日期時間或varchar

ALTER TABLE `user` CHANGE `created_at` `created_at` TIMESTAMP NOT NULL; 
ALTER TABLE `user` CHANGE `updated_at` `updated_at` TIMESTAMP NOT NULL; 

並使用引號大約NOW()

+0

嗨裏希感謝您的回答。我現在試試 – giovaZ

+0

它工作!謝謝 – giovaZ

+0

很高興幫助你:) – C2486