【发布时间】:2018-04-17 15:51:03
【问题描述】:
Eloquent save method 有没有一种简单的方法来检查一行是否实际发生了变化?像 affected_rows 这样的 Eloquent 吗?
我发现的唯一解决方法是从Laravel Eloquent update just if changes have been made 做:
$user = Auth::user();
$timestamp = $user->updated_at;
$user->title = $request->input('title');
....
$user->save();
if($timestamp == $user->updated_at){
// row was not updated.
}
但这是否可以在不需要$timestep 变量和检查的情况下更短地找到它?我不想在每个控制器中重复这个逻辑。
我正在寻找这样的东西:
$user = Auth::user();
$user->title = $request->input('title');
....
if($user->save()){
// row was updated.
}
但这不起作用,因为$user->save 在这两种情况下都会返回true。还有其他方法吗?
【问题讨论】:
标签: php laravel laravel-5 eloquent laravel-5.5