Посев Laravel многие ко многим таблицы с данными - PullRequest
0 голосов
/ 12 ноября 2018

у меня 3 таблицы; заказы, продукты и order_product. Я пытаюсь заполнить сводную таблицу order_product с помощью класса Seeder.

Это то, что у меня в коде;

$productArray = \Illuminate\Support\Facades\DB::table('products')->pluck('id')->toArray();

factory(App\Order::class, 60)->create()->each(function ($order) use ($productArray)  {
  $randomPickings = mt_rand(1, 4);
  $order->products()->sync(array_rand($productArray, $randomPickings));
});

Я хочу прикрепить идентификаторы продуктов из $productArray, чтобы в заказе можно было, скажем, добавить 1,2,3,4 или 5 продуктов после посева. В настоящее время я получаю эту ошибку при запуске сеялки.

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or 
update a child row: a foreign key constraint fails 
(`foo`.`order_product`, CONSTRAINT 
`order_product_product_id_foreign` FOREIGN KEY (`product_id`) 
REFERENCES `products` (`id`) ON DELETE CASCADE) (SQL: insert into 
`order_product` (`order_id`, `product_id`) values (2, 0))

Нет продукта с идентификатором 0. Я предполагаю, что он выбирает индексы вместо значений. Как мне получить выбранные / выбранные значения вместо этого? Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...