我试图为我的数据库播种。目前,我正试图获得ID为$index
的产品的价格。我的播种机看起来像这样。
foreach(range(1,25) as $index)
{
DB::table('orderitems')->insert([
'order_id' => rand(1, 25),
'product_id' => $index,
'price' => '',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
我将这粒种子送达25次。我想要实现的是获得具有给定id的每个产品的价格。比方说,例如,product_id是10.我希望产品的价格为ID 10.关系很好。我可以做一些像$ product->价格的东西,它工作正常。我怎样才能做到这一点?
数据库看起来像这样
Products
name
description
price
period
提前致谢!
答案 0 :(得分:2)
'price' => Product::where('id',$index)->first()->price,
答案 1 :(得分:1)
您可以使用类似下面的代码查询产品ID获取产品价格:
foreach(range(1,25) as $index)
{
$product = DB::table("products")->where('id',$index)->first();
DB::table('orderitems')->insert([
'order_id' => rand(1, 25),
'product_id' => $index,
'price' => $product->price,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
答案 2 :(得分:0)
你可以这样试试。
foreach(range(1,25) as $index)
{
$price = App\Products::->find($index)->price;
DB::table('orderitems')->insert([
'order_id' => rand(1, 25),
'product_id' => $index,
'price' => $price,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
答案 3 :(得分:0)
试试这个:
$range = range(1,25);
$productIds = Product::whereIn('id', $range)->pluck('price', 'id');
foreach($range as $index)
{
DB::table('orderitems')->insert([
'order_id' => rand(1, 25),
'product_id' => $index,
'price' => $productIds[$index] ?? null,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}