首页 > 解决方案 > 如何更新行并返回updated_at?

问题描述

我试图在updated_at之后立即更新行和返回值:

$product = ProductModel::where("Id", $id)->update(["Status" => 0]);

return $product->updated_at;

如何正确地做到这一点?

我也可以为每次更新全局执行此操作吗?

标签: laravellaravel-5

解决方案


update函数旨在针对查询返回的行数进行批量更新。它可能是零,可能是一,可能是一千。因此,它的返回值只是一个布尔值“它工作了吗?” 价值。

由于您要更新单行:

$product = ProductModel::where("Id", $id)->first();
$product->Status = 0;
$product->save();

return $product->updated_at;

你真的应该告诉 Laravel 你的自定义主键,这样你就可以使用ProductModel::find($id)更简洁的代码。

旁注:如果你有一个 ProductModel$product并且你update()在它上面使用,你可以$product->refresh()从数据库中重新获取它的数据。


推荐阅读