/** * For mass transaction updating * (adding the same budgets to many transactions) * Called from TransactionsController update method * @param Request $request * @param Transaction $transaction * @return Transaction */ public function addBudgets(Request $request, Transaction $transaction) { $budgetIds = $request->get('budget_ids'); //Prepare the data for the pivot table $pivotData = array_fill(0, count($budgetIds), ['allocated_percent' => 100, 'calculated_allocation' => $transaction->total]); $syncData = array_combine($budgetIds, $pivotData); $transaction->budgets()->sync($syncData, false); return $transaction; }