[英]Custom Yii2 TimestampBehavior
我的模特有行為
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'title',
// 'slugAttribute' => 'slug',
],
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'created_at',
'updatedAtAttribute' => 'updated_at',
'value' => time(),
],
];
}
一切正常。 但是我需要只有一項行動是行不通的。 有必要在actionView中不要更改“ update_at”屬性。 我的actionView:
$model = $this->findModel($id);
$model->views++;
$model->save();
我如何才能盡可能正確地做到這一點?
采用:
$model->save(false, ['views']);
第一個參數確定是否應該運行驗證(對於此示例,這不是必需的),第二個參數確定應保存的屬性。
Yii2 ActiveRecord-save()或Yii2 ActiveRecord-updateCounters() (更好)
您可以使用特殊方法ActiveRecord :: updateCounters()對其進行更新。
$model = $this->findModel($id);
// Don't forget to check whether the model is null
if ($model !== null) {
$model->updateCounters(['views' => 1]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.