Yii2 自动更新时间created_at updated_at

度量衡互联网 2023-05-20 10:11:02 482阅读 江西省赣州市 电信

创建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());},

4、问题虽然解决,但是为什么 新建数据却没有自动插入时间的原因却没有发现..............

提示:如果此问题没有解决您的需求,您可以点击 “我也要问” 在线咨询。 我也要问

若此问题存在违规行为,您可以点击 “举报”

0条回答

快速提问,在线解答

1

描述需求

填写需求概要标题,补充详细需求

2

耐心等

等待网友或网站工作人员在线解答

3

巧咨询

还有疑问?及时追问回复

立即咨询