我有3张桌子;订单,产品和order_product。我正在尝试使用Seeder类播种order_product数据透视表。
这就是我的代码中的内容;
$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
中的产品ID,以便在播种后一个订单可以附加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))
没有ID为0的产品。我猜它是在选择索引而不是值。如何获得选择/选择的值呢?谢谢。