gpt4 book ai didi

php - 在 Laravel-Doctrine 中使用工厂时调用未定义的方法 newCollection

转载 作者:行者123 更新时间:2023-12-04 13:16:20 25 4
gpt4 key购买 nike

我想使用 Model factories ,但我收到此错误:

1) Tests\Factory\UserFactoryTest::testUserCount
Error: Call to undefined method App\Entities\User::newCollection()

C:\Projects\factory_test\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:228
C:\Projects\factory_test\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:178
C:\Projects\factory_test\tests\Factory\UserFactoryTest.php:21

工厂代码复制自 Laravel-Doctrine example project :

$factory->define(App\Entities\User::class, function (Faker\Generator $faker) {
return [
'name' => $faker->title,
];
});

我做错了什么?在使用工厂之前,我是否需要额外的配置? Doctrine 完美无缺,我只有 factory()

有问题

测试类如下所示:

class UserFactoryTest extends TestCase {

private $users = array();

protected function setUp(): void
{
parent::setUp();

$this->users = factory(User::class, 3)->create();
}

// ...

}

最佳答案

您的 setUp() 函数使用标准的 Laravel factory() 助手来生成测试数据。

将此更改为:

protected function setUp(): void
{
parent::setUp();
$this->users = entity(User::class, 3)->create();
// ^^^^^^
}

Laravel 原则 entity() helper method在幕后使用与标准 Laravel factory() 辅助方法不同的基类。

// Laravel Doctrine
$factory = app('LaravelDoctrine\ORM\Testing\Factory');

factory() helper method 比较在 Laravel 框架中:

// Laravel framework
$factory = app(EloquentFactory::class);

关于php - 在 Laravel-Doctrine 中使用工厂时调用未定义的方法 newCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60064012/

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