【发布时间】:2021-08-05 18:02:24
【问题描述】:
我有两个工厂在这里:
CourseFactory.php:
protected $model = Course::class;
public function definition()
{
return [
'title' => $this->faker->sentence(),
'body' => $this->faker->paragraph(5),
'price' => $this->faker->numberBetween(1000,10000),
'image' => $this->faker->imageUrl(),
];
}
还有EpisodeFactory.php:
protected $model = Episode::class;
public function definition()
{
return [
'title' => $this->faker->sentence(),
'body' => $this->faker->paragraph(5),
'videoUrl' => 'https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4',
];
}
然后在 DatabaseSeeder.php:
public function run()
{
$user = factory(App\Models\User::class)->create();
factory(\App\Models\Course::class , 5)->create(['user_id' => $user->id ])->each(function ($course) {
factory(\App\Models\Episode::class, rand(6 , 20))->make()->each(function ($episode , $key) use ($course){
$episode->number = $key +1;
$course->episodes()->save($episode);
});
});
}
但是当我想运行php artisan db:seed时,我得到了这个错误:
调用未定义函数 Database\Seeders\factory()
在 C:\Users\POUYA\Desktop_MACOSX\laravel-api\database\seeders\DatabaseSeeder.php
错误信息是指这一行:
$user = factory(App\Models\User::class)->create();
意思是我没有正确使用factory。
那么如何正确调用factory呢?
非常感谢你们的任何想法或建议......
提前致谢。
UserFactory.php:
protected $model = User::class;
public function definition()
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
}
【问题讨论】:
-
用户工厂在哪里?
-
@DevBF 我刚刚将它添加到问题中。