#laravel #laravel-seeding #factories
Вопрос:
В настоящее время я слежу за Laracasts и изучаю Laravel. Я полностью понимаю посев и фабрики, но мне было интересно, есть ли способ ограничить количество предметов, которые может создать фабрика, называемая другой фабрикой? Может быть, функция стрелки? Это в первую очередь потому, что я не хочу, чтобы 30 пользователей с моими 30 постами и т. Д. Я понимаю, что мог бы просто назвать их отдельно в сеялке, но это не то решение, которое я ищу, если только это действительно не единственный вариант.
Мой Текущий постфактумный код:
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'user_id' => User::factory(),
'category_id' => Category::factory(),
'title' => $this->faker->sentence(),
'slug' => $this->faker->slug(),
'excerpt' => collect($this->faker->paragraphs(2))->map(fn($item) => "<p>{$item}</p>")->implode(''),
'body' => collect($this->faker->paragraphs(6))->map(fn($item) => "<p>{$item}</p>")->implode(''),
];
}
}