對yii2 內置的behavior理解(TimestampBehavior篇)

*TimestampBehavior: 自動把時間戳填充指定的屬性

<?php
use yii\behaviors\TimestampBehavior;

public function behaviors()
{
    return [             
              // 匿名行爲, 只有行爲類名,這樣寫了之後,所有的一切都要遵循TimestampBehavior的要求  
              TimestampBehavior::class,
        ];
}
?>
<?php
use yii\behaviors\TimestampBehavior;

public function behaviors()
{
    return [
                [  // 匿名行爲, 配置數組
                'class' => TimestampBehavior::class,  // 行爲類
                'attributes' => [
                    // 當insert時,自動把當前時間戳填充填充指定的屬性(created_at), 
                    // 當然, 以下鍵值也可以是數組,
                    // eg: ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
                    ActiveRecord::EVENT_BEFORE_INSERT => 'created_at',
                    // 當update時,自動把當前時間戳填充指定的屬性(updated_at)
                    ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
                ],
            ],
    ];
}
?>
<?php
use yii\behaviors\TimestampBehavior;

public function behaviors()
{
    return [
                [  // 匿名行爲, 配置數組
                'class' => TimestampBehavior::class,  // 行爲類
                 // 修改更新時 時間戳賦值的屬性: 當修改時,把時間戳賦值給deleted_at
                 // 該屬性可根據自己數據表的設計動態更改
                'updatedAtAttribute' => 'deleted_at',
                // 如果數據表中沒有updated_at字段,則可定義updatedByAttribute爲false
                // 'updatedByAttribute' => false
                    
                'createdByAttribute' => 'createdAt',  // 同上
            ],
    ];
}
?>
<?php
use yii\behaviors\BlameableBehavior;

public function behaviors()
{
    return [
                [  // 匿名行爲, 配置數組
                'class' => TimestampBehavior::class,  // 行爲類
                // 傳遞的值, 默認情況下是當前時間戳, 如果定義了value,則使用當前定義的value值
                'value' => function($event) {  // 匿名函數方式,該方式一般用於處理較爲複雜的邏輯, 一般情況下,我們會使用這種方式: 'value' => time() + 86400
                // 自動填充值: 可在這裏定義相應的數據
                    return time() + 86400;
                },
            ],
    ];
}
?>

*以上可視情況綜合使用
上一篇: 對yii2 內置的behavior理解(BlameableBehavior篇)
下一篇: 對yii2 擴展behavior理解(PinyinBehavior篇)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章