【发布时间】:2021-03-09 13:51:05
【问题描述】:
Eloquent 有一个 firstOrCreate 方法,它可以根据条件获取模型,如果不存在则创建它。
在 Laravel 的查询构建器中是否有任何等效的方法(即不在 Eloquent 中)?例如:
$row = DB::table('users')->where('user_id', 5)->firstOrCreate('name' => 'Peter', 'last_name' => 'Pan');
这将尝试从users 和'user_id'==5 获取一行。如果它不存在,它将插入具有该 ID 号的行以及其他提到的字段。
编辑:我不想将我的问题应用于用户。我以用户为例,尽可能清楚地说明我在寻找什么。
【问题讨论】:
-
为什么你不想使用 Eloquent ?
-
我不这么认为 - 您可以查看构建器来源:laravel.com/api/5.7/Illuminate/Database/Query/Builder.html 但您不太可能找到它。
-
@MD.JubairMizan 这个例子有点不幸,因为用户非常适合 Eloquent。我实际上是在尝试创建一个简单的系统,我认为在 Eloquent 中创建模型会有点过头了。
-
@Racso 用户模型随 Laravel 一起提供。在这里不使用它似乎毫无意义。创建模型也很容易,如果您遵循约定,Eloquent 几乎不需要任何配置。
标签: laravel