Laravel 的一大长处就是提供了特别优秀的 Eloquent ORM,极大的方便了数据库交互操作,比如 firstOrCreate 方法将尝试使用给定的列 / 值对来查找数据库记录。如果在数据库中找不到该模型,则将插入一条记录。

如果我们需要获取 firstOrCreate 最终执行的到底是插入操作还是查找操作,Laravel 也提供了 wasRecentlyCreated 方法。

$flight = Flight::firstOrCreate(
    ['name' => 'London to Paris'],
    ['delayed' => 1, 'arrival_time' => '11:30']
);

if ($flight->wasRecentlyCreated) {
    // 没有查询到指定的记录,执行的是插入操作
} else {
    // 查询到了指定的记录,执行的是查询操作
}