我已經使用以下刀片陣列在插入多個條目LaravelEloquent ORM
在Laravel
$i = 0;
foreach($exerciseValArray as $kkey=>$exerciseValue){
if($exerciseValue['exercise'] =='' || $exerciseValue['section_type'] == ''){
return Response::JSON(array('errors'=>array('Error in workout exercise section')));
}
$exerciseData = explode(',',$exerciseValue['exercise']);
foreach($exerciseData as $exerciseid){
$insertArray[$i]['fk_workouts_id'] = $id;
$insertArray[$i]['fk_users_id'] = $userId;
$insertArray[$i]['fk_exercises_id']= $exerciseid;
$insertArray[$i]['section'] = $exerciseValue['section_type'];
$insertArray[$i]['status'] = 1;
$insertArray[$i]['item_index'] = $index+$kkey+1;
$insertArray[$i]['updated_at'] = $workoutDetails['updated_at'];
$i++;
}
}
WorkoutExercise::insert($insertArray);
上面的代碼工作正常,並插入數據陣列中的數據庫。
我瞭解到Model::updateOrCreate
的使用和在我的一些模塊,使用它成功(即)
Model::updateOrCreate($attributes = array('key' => 'value'), $values = array('key' => 'value'));
我的問題是如何編輯上述插入片段,使我可以用它Model::updateOrCreate
。我的$attributes
字段是'fk_workouts_id','fk_users_id','fk_exercises_id',其餘部分在$values
中進行更改。
我不知道如何實現這一點。請幫助...
雄辯不能插入/更新多行,你需要逐一處理它們。 'insert'方法實際上是'Query \ Builder',它根本不使用Eloquent特性(例如時間戳等)。 – 2014-11-24 15:56:25
是否有'Eloquent'或'查詢\ Builder'任何其他方式,我可以創建數據是否存在@JarekTkaczyk錄入或更新。因爲我需要更新或創建近20-50個數據是一個很好的做法嗎? – Ronser 2014-11-25 03:46:53
以何種方式的良好習慣?你可以寫3行代碼,並讓Eloquent完成這項工作,或者說13行代碼,你可以在這裏完成工作。雄辯有'firstOrNew'方法,這是要走的路。 – 2014-11-25 07:50:32