我正在尝试从 Laravel DB Facade 实现 insertOrIgnore
方法,
这是文档+解释片段的链接:
https://laravel.com/docs/5.8/queries#inserts
The insertOrIgnore method will ignore duplicate record errors while inserting records into the database:
DB::table('users')->insertOrIgnore([
['id' => 1, 'email' => 'taylor@example.com'],
['id' => 2, 'email' => 'dayle@example.com']
]);
这是产生错误的代码片段(它适用于常规 insert()
)
if ($datetime->format('H:i') >= '05:50' && $datetime->format('H:i') <= '07:10') {
DB::table('attendanceTable')->insertOrIgnore(['user_id' => $request->loggedUserId, 'day' => $datetime, 'shift_id' => $Shifts->id, 'created_at' => $datetime, 'updated_at' => $datetime]);
这是 Laravel 的 Telescope 产生的错误
Call to undefined method Illuminate\Database\Query\Builder::insertOrIgnore()
有人可以指出我做错了什么,或者至少给我一个提示吗?提前致谢!
最佳答案
我也出现了同样的错误,原来是因为我在laravel版本5.8.32
上,insertOrIgnore
是在5.8版本添加的。 33
。
运行 composer update
解决了这个问题。
关于php - Laravel DB 门面 BadMethodCallException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807710/