到现在为止,我曾经写过这样的更新查询:
$flight = App\Flight::where('id', $id)->get();
$flight->name = 'New Flight Name';
$flight->save();
但是,如果我理解正确,这将做2个查询。一个选择查询然后一个更新查询。
所以我决定使用laravels update()
以便只有1个查询。
例如:
$flight = App\Flight::where('id', $id)
->update(['name' => 'New Flight Name']);
但是,我如何检查$ flight
是否找不到任何基于上述ID的内容,或者$flight
更新是否失败?
答案 0 :(得分:0)
您可以使用firstOrFail()
功能
$flight = App\Flight::where('id', $id)
->firstOrFail()
->update(['name' => 'New Flight Name']);
或做一个简单的检查
$flight = App\Flight::where('id', $id)->first();
if($flight) {
$flight->update(['name' => 'New Flight Name']);
}