2017-09-05 51 views
1

以下是错误:

Database Exception – yii\db\Exception 

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1504595835' for column 'updated_at' at row 1 
The SQL being executed was: UPDATE `user` SET `password_reset_token`='zDPxEMdJ2EaaCf2VsI_Uf9QNf0q2MKcn_1504595835', `updated_at`='1504595835' WHERE `id`=19 
Error Info: Array 
(
    [0] => 22007 
    [1] => 1292 
    [2] => Incorrect datetime value: '1504595835' for column 'updated_at' at row 1 
) 

我不知道那里时间戳得到分配的updated_at领域。

我试着将updated_at的值设置为日期(“Y-m-d H:i:s”),但仍然没有运气。

我试图设置行为也,但仍然没有运气。

任何人都可以帮助解决这个问题?

+0

什么是你的默认MySQL后,手动保存这些记录'updated_at'的列类型 – FreedomPride

+0

其时间戳.. – rahulsm

+0

在你的模型中,找到方法“public function behaviors(){}”有“TimestampBehavior”,检查它的手册,在这里设置值。 –

回答

0

你已经声明你的列“updated_at”和“created_at”是错误的。你有,如果你想的updated_at保存在数字格式更改数据类型为int(11)

,或者如果你想保存在here

+1

但我没有做任何事情,它的Yii自己处理所有事情,我只需调用$ user-> save()并且不传递任何值updated_at – rahulsm

+0

我更新了我的答案以更好地匹配您的问题 –

+0

然后它将存储时间戳记正确吗?但我想存储当前日期和时间 – rahulsm

0

描述将其更改为

int(11) 

日期时间格式使用

$model->updated_at = date_format(date_create(), 'Y:m:d: H:i:s') 

,改变你的数据类型为datetime

+0

它不工作... – rahulsm

0

首先在表中将dataType更改为datetime。在共同\部件

<?php 
namespace common\components; 

use Yii; 
use yii\base\Exception; 

/** 
* Class ActiveRecord 
* @property string $created_at 
* @property string $updated_at 
* @package common\components 
*/ 
class ActiveRecord extends \yii\db\ActiveRecord { 

    public function beforeSave($v){ 
     if($this->isNewRecord) { 
      try { 
       $this->created_at = date('Y-m-d H:i:s'); 
      } catch (Exception $e) {} 
     } 

     try { 
      $this->updated_at=date('Y-m-d H:i:s'); 
     } catch (Exception $e) {} 
     return parent::beforeSave($v); 
    } 


} 

检查beforeSave功能 程度的ActiveRecord从共同\部件

箱ActiveRecord.php \ ActiveRecord的 例如。

<?php 
namespace common\models; 
use common\components\ActiveRecord; 
class User extends ActiveRecord implements IdentityInterface 
{ 
    public static function tableName() 
    { 
     return '{{%user}}'; 
    } 

} 
0

首先想到created_at和的updated_at由普通/模型/用户模型的行为和你的数据库表列数据类型的管理应该是“BIGINT”保存这些记录。

另一种节省的updated_at在“YYYY/MM/DD H:I:的”格式化您需要删除使用模型行为功能和更改数据库表列数据类型