Laravel красноречивый множественный принадлежит к раздаче

У меня есть три модели: User, Category и Article.

Article принадлежит как User, так и Category, где внешние ключи user_id и category_id равны not null.

Я потерялся, пытаясь заполнить базу данных поддельными данными через фабрики, соответственно, вот код заполнения …

// 2 categories and 12 articles, 6 per category // TODO: A user should have 6 articles with mixed categories // 3 from each category // So we will have 2 users factory(Category::class, 2)->create()->each(function($category) { factory(User::class)->create()->each(function($user) use ($category) { // How to assign an Article to $category or $user while creating? $user->articles()->createMany( factory(Article::class, 3)->make()->toArray() ); // category_id can’t be null // OR $category->articles()->createMany( factory(Article::class, 3)->make()->toArray() ); // user_id can’t be null }); });

Я получу одну из двух ошибок, либо

Столбец user_id не имеет значения по умолчанию

Or

Столбец category_id не имеет значения по умолчанию

Что логично из-за Article миграции таблицы

$table->increments(‘id’); $table->unsignedInteger(‘user_id’); $table->foreign(‘user_id’)->references(‘id’)->on(‘users’)->onDelete(‘cascade’); $table->unsignedInteger(‘category_id’); $table->foreign(‘category_id’)->references(‘id’)->on(‘categories’)->onDelete(‘cascade’);

Как я могу передать category_id или user_id заводскому вызову?
Есть ли лучший способ добиться этого?

заранее спасибо

Добавить их вот так? factory(Article::class, 3)->make([‘category_id’ => $category->id])->toArray() Это работает?   —  person Salim Djerbouh    schedule 20.09.2019

@kerbholz да, спасибо, дайте ответ, и я проголосую и приму   —  person Salim Djerbouh    schedule 20.09.2019

Источник: ledsshop.ru

Стиль жизни - Здоровье!