Laravel 5:更新记录而不更改 updated_at 字段的当前 date/time 值
Laravel 5: Update record without changing current date/time value of updated_at field
在我的 Laravel 5 项目中,当访问者 come/refresh 在产品页面上时,我想增加浏览次数:
$rds = Product::whereId($id)->first();
$rds->hits++;
$rds->save();
问题是字段:updated_at自动更新,这根本不是我想要的,因为我只想更改字段:点击,而不是update_at 字段。
如果我设置 $rds->updated_at = false;该字段更新为“0000-00-00 00:00:0”。
您能否建议如何防止 updated_at 字段仅针对特定功能自动更改?
此致,
那仁
只需将以下内容放入您的模型中即可禁用时间戳
public $timestamps = false;
或追加到方法主体,下面
$rds->timestamps = false;
注意:第一个会永久禁用时间戳,而另一个不允许在您的编辑中更新时间戳。
不是$rds->updated_at = false
,应该是$rds->timestamps = false
将时间戳设置为 false 以禁用更新 created_at 和 updated_at。
$rds = Product::whereId($id)->first();
$rds->hits++;
$rds->timestamps = false;
$rds->save();
您可以在performUpdate
方法中通过Laravel查看代码:
\Illuminate\Database\Eloquent\Model.php
// First we need to create a fresh query instance and touch the creation and
// update timestamp on the model which are maintained by us for developer
// convenience. Then we will just continue saving the model instances.
if ($this->timestamps && Arr::get($options, 'timestamps', true)) {
$this->updateTimestamps();
}
在我的 Laravel 5 项目中,当访问者 come/refresh 在产品页面上时,我想增加浏览次数:
$rds = Product::whereId($id)->first();
$rds->hits++;
$rds->save();
问题是字段:updated_at自动更新,这根本不是我想要的,因为我只想更改字段:点击,而不是update_at 字段。
如果我设置 $rds->updated_at = false;该字段更新为“0000-00-00 00:00:0”。
您能否建议如何防止 updated_at 字段仅针对特定功能自动更改?
此致, 那仁
只需将以下内容放入您的模型中即可禁用时间戳
public $timestamps = false;
或追加到方法主体,下面
$rds->timestamps = false;
注意:第一个会永久禁用时间戳,而另一个不允许在您的编辑中更新时间戳。
不是$rds->updated_at = false
,应该是$rds->timestamps = false
将时间戳设置为 false 以禁用更新 created_at 和 updated_at。
$rds = Product::whereId($id)->first();
$rds->hits++;
$rds->timestamps = false;
$rds->save();
您可以在performUpdate
方法中通过Laravel查看代码:
\Illuminate\Database\Eloquent\Model.php
// First we need to create a fresh query instance and touch the creation and
// update timestamp on the model which are maintained by us for developer
// convenience. Then we will just continue saving the model instances.
if ($this->timestamps && Arr::get($options, 'timestamps', true)) {
$this->updateTimestamps();
}