【问题标题】:Why is my Laravel factory unable to find my model?为什么我的 Laravel 工厂找不到我的模型?
【发布时间】:2018-05-18 12:29:29
【问题描述】:

我使用artisan make:model command、模型工厂和种子方法创建了一个业务模型。运行我的种子方法时,我收到以下错误:

InvalidArgumentException 无法找到具有名称的工厂 [默认] [应用\业务]。

谁能告诉我我做错了什么?

商业模式:

namespace App;
use Illuminate\Database\Eloquent\Model;

class Business extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name'
    ];

    public function resources()
    {
        return $this->hasMany('App\Resource');
    }

}

商业工厂

use Faker\Generator as Faker;

$factory->define(Business::class, function (Faker $faker) {
    return [
        'name' => $faker->company,
    ];
});

播种方法

$business = factory(App\Business::class, 50)
                   ->create()
                   ->each(function ($u) {
                        $u->resources()->save(factory(App\Resource::class)->make());
                    });

【问题讨论】:

  • 在您的“企业工厂”中,在use Faker\Generator as Faker; 行之后添加use App\Business;

标签: php laravel


【解决方案1】:

请尝试composer dump-autoload

有时,它在这种情况下会有所帮助。

并确保当您声明此类工厂时:$factory->define(Business::class,... 您的 Business 类已正确导入,或考虑将其更改为 App\Business

【讨论】:

  • 我已经尝试过composer dump-autoload,但仍然遇到问题。我还使用use Business; 导入了模型
  • @Imran 试试use App\Business
  • 然后是composer dump-autoload?
猜你喜欢
  • 2023-02-04
  • 2021-01-04
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 2013-10-13
相关资源
最近更新 更多