php - Laravel DB 门面 BadMethodCallException

标签 php mysql laravel

我正在尝试从 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/

相关文章:

php - 我想知道如何在我的 Controller (laravel)中不使用 faker 技术的情况下在我的数据库 Mysql5.7 中获取一些字段

laravel - 传递数组后在laravel中获取共享变量

php - 存储其中包含 unicode 字符的字符串

php - 递归列表函数

php - 删除输入中的 "Search"文本,仅适用于一个搜索框,不适用于所有搜索框

mysql - 无法使用 .NET mysql 连接器连接到 mysql rds 实例

python - 如何在 get_context_data 中执行两个相关的数据库查询,即使用 "request"?

php - 为整个数据库导入单个 MySQL .sql 文件 |未选择数据库错误

mysql - 仅基于一列选择mysql中的不同条目

php - 预期响应代码 250 但得到代码 "530",消息为“530 5.7.1 需要身份验证