/** * @param array $fields * * @return Budget */ public static function firstOrCreateEncrypted(array $fields) { // everything but the name: $query = Budget::orderBy('id'); $search = $fields; unset($search['name']); foreach ($search as $name => $value) { $query->where($name, $value); } $set = $query->get(['budgets.*']); /** @var Budget $budget */ foreach ($set as $budget) { if ($budget->name == $fields['name']) { return $budget; } } // create it! $budget = Budget::create($fields); return $budget; }
/** * */ public function createBudgets() { $user = User::whereEmail('*****@*****.**')->first(); $groceries = Budget::create(['user_id' => $user->id, 'name' => 'Groceries']); $bills = Budget::create(['user_id' => $user->id, 'name' => 'Bills']); $deleteMe = Budget::create(['user_id' => $user->id, 'name' => 'Delete me']); Budget::create(['user_id' => $user->id, 'name' => 'Budget without repetition']); BudgetLimit::create(['startdate' => $this->som, 'amount' => 201, 'repeats' => 0, 'repeat_freq' => 'monthly', 'budget_id' => $groceries->id]); BudgetLimit::create(['startdate' => $this->som, 'amount' => 202, 'repeats' => 0, 'repeat_freq' => 'monthly', 'budget_id' => $bills->id]); BudgetLimit::create(['startdate' => $this->som, 'amount' => 203, 'repeats' => 0, 'repeat_freq' => 'monthly', 'budget_id' => $deleteMe->id]); // and because we have no filters, some repetitions: }