*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篇)