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