у меня 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. Я предполагаю, что он выбирает индексы вместо значений. Как мне получить выбранные / выбранные значения вместо этого? Благодаря.