gpt4 book ai didi

laravel 8 调用未定义的方法 upsert

转载 作者:行者123 更新时间:2023-12-04 08:46:54 27 4
gpt4 key购买 nike

我刚刚将 laravel 升级到 v8,我正在尝试运行记录的 upsert 函数 here在播种机上。
这是我正在运行的代码示例

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class NewspaperSeeder extends Seeder
{
/**
* Run the database seeders.
*
* @return void
*/
public function run()
{
DB::table("newspapers")->upsert(
["rows to insert"],
["primary key"],
["attributes to update if duplicate"]);
}
}
同时,当我运行 php artisan db:seed 时,我最终得到了这个错误。
 BadMethodCallException

Call to undefined method Illuminate\Database\Query\Builder::upsert()

at vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:50
46▕ * @throws \BadMethodCallException
47▕ */
48▕ protected static function throwBadMethodCallException($method)
49▕ {
➜ 50▕ throw new BadMethodCallException(sprintf(
51▕ 'Call to undefined method %s::%s()', static::class, $method
52▕ ));
53▕ }
54▕ }

• Bad Method Call: Did you mean Illuminate\Database\Query\Builder::insert() ?
编辑(composer.json):
我按照官方文档上的升级指南,运行 composer update
{
"require": {
"php": "^7.2.5",
"ext-json": "^7.4",
"doctrine/dbal": "^2.10",
"fideloper/proxy": "^4.0",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^6.3",
"laravel/framework": "^8.0",
"laravel/legacy-factories": "^1.0",
"laravel/passport": "^10.0",
"laravel/socialite": "^5.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^3.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"facade/ignition": "^2.3.6",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^5.0",
"phpunit/phpunit": "^9.0"
},
}

最佳答案

你将不得不等待 Laravel 8.x 的下一个标记版本。目前我们在 8.9.0这是不是 包括此更改。
这是管理框架的人员的一个错误,用于在 8.x 文档实际发布之前将其添加到 8.x 文档中。
标记并发布后,您必须更新对框架的依赖,laravel/framework , 使用该方法。

 composer update laravel/framework
或者更新所有的deps
composer update

关于laravel 8 调用未定义的方法 upsert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64270976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com