【发布时间】:2020-04-22 11:00:14
【问题描述】:
我研究了很多,但找不到任何解决方案。所以我把它贴在这里 我的问题是在插入批量行后,我想获取所有插入的 ID 以将 ID 保存到另一个数据透视表。这是我的代码
$create_market = [];
$create_market_possibility = [];
foreach ($request->type0 as $key => $value) {
array_push($create_market, [
'market_id' => $value['market_id'],
'event_id' => $value['event_id'],
'name' => $value['name'],
'bet_min' => $value['min_bet'],
'bet_max' => $value['max_bet'],
'commission' => $value['commission'],
'type' => 0,
'created_at' => \Carbon\Carbon::now(),
'updated_at' => \Carbon\Carbon::now()
]);
}
foreach ($request->type1 as $key => $value1) {
array_push($create_market, [
'market_id' => $value1['market_id'],
'event_id' => $value1['event_id'],
'name' => $value1['name'],
'bet_min' => $value1['min_bet'],
'bet_max' => $value1['max_bet'],
'commission' => $value1['commission'],
'type' => 1,
'created_at' => \Carbon\Carbon::now(),
'updated_at' => \Carbon\Carbon::now()
]);
foreach ($value1['possibility'] as $key => $value2) {
array_push($create_market_possibility, [
// because i am not getting the inserted ids here i cant push it here
// that is the problem i am facing
'market_id' => $value1['market_id'],
'event_id' => $value1['event_id'],
'possibility' => $value2['possibility'],
'created_at' => \Carbon\Carbon::now(),
'updated_at' => \Carbon\Carbon::now()
]);
}
}
Market::insert($create_market);
// Here i want to retrive the last inserted all ids and put then in the obj of
[$create_market_possibility] array ...
if(count($create_market_possibility) > 0) {
MarketPossibility::insert($create_market_possibility);
}
$response = [
'status' => true,
'message' => 'Market Successfully Created'
];
return response()->json($response); //@ sending response
我在使用 create() 进行单次插入时做了这件事
$id = Market::create($array)
它返回了我的对象.. 但在这种情况下,我必须插入多行..
如果有其他方法请告诉我,谢谢!
【问题讨论】:
-
你试过
$create_market_possibility = Market::insert($create_market) -
您是说将对象保存在 create_market_possibility 数组中??...我试过这个,但它返回了我 1
标签: php mysql laravel laravel-6 laravel-6.2