yii2中的行为配置项是怎么生效的
程序员文章站
2022-05-18 07:57:29
...
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
],
];
}
当记录插入时,行为将当前时间戳赋值给 created_at 和 updated_at 属性;
当记录更新时,行为将当前时间戳赋值给 updated_at 属性。
请问,上面代码attributes中的配置项是怎么起作用的。
回复内容:
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
],
];
}
当记录插入时,行为将当前时间戳赋值给 created_at 和 updated_at 属性;
当记录更新时,行为将当前时间戳赋值给 updated_at 属性。
请问,上面代码attributes中的配置项是怎么起作用的。
理解行为和事件
通俗来说,背后的逻辑就是通过上面的代码,为ar绑定了两个事件,分别是beforeInsert
和 'beforeUpdate',
当这两个事件触发时,调用回调出里函数,设置属性值