Heim >Backend-Entwicklung >PHP-Tutorial >yii2中的行为配置项是怎么生效的

yii2中的行为配置项是怎么生效的

WBOY
WBOYOriginal
2016-06-06 20:18:511305Durchsuche

<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',

当这两个事件触发时,调用回调出里函数,设置属性值

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn