【发布时间】:2015-05-06 03:39:18
【问题描述】:
是否有任何方法可以使用 eloquent 模型更新 Laravel 中的记录,只要对记录进行了更改?我不希望任何用户一遍又一遍地无缘无故地请求数据库,只需点击按钮即可保存更改。我有一个javascript 功能,可以根据页面中是否发生更改来启用和禁用保存按钮,但我想知道是否可以确保在服务器端也执行这种功能。我知道我可以自己完成它(意思是:不诉诸框架的内部功能)只需检查记录是否有变化,但在这样做之前,我想知道 Laravel 雄辩模型是否已经处理那个,所以我不需要重新发明轮子。
这是我用来更新记录的方式:
$product = Product::find($data["id"]);
$product->title = $data["title"];
$product->description = $data["description"];
$product->price = $data["price"];
//etc (string values were previously sanitized for xss attacks)
$product->save();
【问题讨论】:
-
为什么不启用数据库日志记录,然后检查日志以查看 Eloquent 在保存时实际执行的查询:您可能会感到惊喜
-
请注意,Laravel 模型包含一个
dirty标志,用于确定是否实际需要对数据库进行更新,并且该标志是通过将原始find列值与位于执行保存的点