创建model之后,新建一条记录,结果设计的表中created_at 字段 updated_at 字段 都是datetime 类型的,却不能自动插入当前时间。查看了资料,解决如下:
1、在class CrmBusiness extends \yii\db\ActiveRecord {}中 引入use yii\behaviors\TimestampBehavior;use yii\db\Expression;
2、覆盖父类的behaviors 方法
/**
* @inheritdoc
*/
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'created_at',// 自己根据数据库字段修改
'updatedAtAttribute' => 'updated_at', // 自己根据数据库字段修改, // 自己根据数据库字段修改
//'value' => new Expression('NOW()'),
'value' => function(){return date('Y-m-d H:i:s',time());},
],
];
}
3、value的值需要注意:第一种方法 引入use yii\db\Expression;'value' => new Expression('NOW()'),第二种方法:不需要引入use yii\db\Expression;'value' => function(){return date('Y-m-d H:i:s',time());},
ps:注意去掉rules里对应的required规则
public function rules()
{
return [
[['uid', 'create_time', 'update_time'], 'required'],
];
}