有很多问题询问如何在没有任何更改时阻止updated_at
列更改。事实上,this was even fixed as a bug.
但是,我想做的恰恰相反。我希望将updated_at
列更新为当前时间戳,尽管没有任何更改。基本上,如果你愿意,我想touch
我的模型。
$ touch MyLaravelModel
在Laravel中有一种简单的方法可以做这样的事情吗?与手动编辑字段相比,相当于$model->touch()
的东西?
我已经尝试过这样的事情,但绝对没有任何反应。
$model = Model::find(1);
$model->save();
我这样做的原因是因为我想使用updated_at
列来基本跟踪模型上次“查看”的时间,而不必更改它。有没有更好的方法来解决这个问题?
这与Touching Parent Timestamp不同,因为在这种情况下,我的模型不属于父模型,也没有任何子模式。
答案 0 :(得分:1)
您可以使用touch()
方法。它位于Model
抽象类中,至少从v4.0开始。
这是:
/**
* Update the model's update timestamp.
*
* @return bool
*/
public function touch()
{
$this->updateTimestamps();
return $this->save();
}
像这样使用:
$model->touch();
答案 1 :(得分:0)
我相信你可以做myObject-> save(),即使没有改变,也会更新当前对象的updated_at字段。所以我们说这是一个用户:
$myUser = User::find(1);
$myUser->save()
我相信仍会更新updated_at时间。