Php 无法找到名为[默认值][Modules\Brokerquotes\Entities\insureee]的工厂

Php 无法找到名为[默认值][Modules\Brokerquotes\Entities\insureee]的工厂,php,laravel-5.3,artisan-migrate,Php,Laravel 5.3,Artisan Migrate,我肯定有一个工厂 $factory->define(Modules\Brokerquotes\Entities\Insuree::class,.... 在一个数据库里,我有 factory("Modules\\Brokerquotes\\Entities\\Insuree", 5)->create()-> ...... 但是,当我试图直接使用php artisan db:seed--class=..调用seeder类时,我得到了主题错误 无法找到名为[默认值][Module

我肯定有一个工厂

$factory->define(Modules\Brokerquotes\Entities\Insuree::class,....
在一个数据库里,我有

factory("Modules\\Brokerquotes\\Entities\\Insuree", 5)->create()-> ......
但是,当我试图直接使用
php artisan db:seed--class=..
调用seeder类时,我得到了主题错误

无法找到名为[默认值][Modules\Brokerquotes\Entities\insureee]的工厂

我已尝试
编写器转储自动加载
,但仍然不起作用

我只是需要不时地运行一些单独的播种机


我在这里做错了什么???

考虑到我假设您正在使用的名称空间,并且您已经将被保险人模型工厂放在模块的工厂目录中。这将不起作用,因为默认情况下,模型工厂的查找固定为
数据库路径(“工厂”)
,请参见Factory类中的以下内容:

/**
 * Create a new factory container.
 *
 * @param  \Faker\Generator  $faker
 * @param  string|null  $pathToFactories
 * @return static
 */
public static function construct(Faker $faker, $pathToFactories = null)
{
    $pathToFactories = $pathToFactories ?: database_path('factories');

    return (new static($faker))->load($pathToFactories);
}
将模块工厂移动到项目的工厂目录:

<PROJECT>/
├── database/
│   └── factories/
│       └── InsureeFactory.php
└── Modules/
Artisan命令:

php artisan db:seed --class=Modules\\Brokerquotes\\Database\\Seeders\\BrokerquotesDatabaseSeeder

给定名称空间,我假设您正在使用,并且已将被保险人模型工厂放在模块的工厂目录中。这将不起作用,因为默认情况下,模型工厂的查找固定为
数据库路径(“工厂”)
,请参见Factory类中的以下内容:

/**
 * Create a new factory container.
 *
 * @param  \Faker\Generator  $faker
 * @param  string|null  $pathToFactories
 * @return static
 */
public static function construct(Faker $faker, $pathToFactories = null)
{
    $pathToFactories = $pathToFactories ?: database_path('factories');

    return (new static($faker))->load($pathToFactories);
}
将模块工厂移动到项目的工厂目录:

<PROJECT>/
├── database/
│   └── factories/
│       └── InsureeFactory.php
└── Modules/
Artisan命令:

php artisan db:seed --class=Modules\\Brokerquotes\\Database\\Seeders\\BrokerquotesDatabaseSeeder

我解决了同样的问题,更“标准”的解决方案是:

在[ModuleName]ServiceProvider.php中添加
RegisterFactorys
函数,如下所示:

public function boot()
{
    $this->registerFactories();
    ...
    ...
}
并定义它:

public function registerFactories()
{
    if (! app()->environment('production')) {
        app(\Illuminate\Database\Eloquent\Factory::class)->load(__DIR__ . '/../Database/Factories');
    }
}

我解决了同样的问题,更“标准”的解决方案是:

在[ModuleName]ServiceProvider.php中添加
RegisterFactorys
函数,如下所示:

public function boot()
{
    $this->registerFactories();
    ...
    ...
}
并定义它:

public function registerFactories()
{
    if (! app()->environment('production')) {
        app(\Illuminate\Database\Eloquent\Factory::class)->load(__DIR__ . '/../Database/Factories');
    }
}