/** * Static method to set a value to the settings table */ public static function set($key, $value) { $setting = \App\Setting::firstOrNew(['name' => $key]); $setting->value = $value; $setting->save(); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $data = $request->all(); $clubs = json_decode($data['clubs'], true); $country = Country::firstOrNew(['name' => $data['country']]); $country->save(); $competition = Competition::firstOrNew(['name' => $data['name'], 'country_id' => $country->id, 'type' => $data['type']]); if ($country->competitions()->where(['id' => $competition->id])->get()->count() == 0) { $country->competitions()->save($competition); } Auth::user()->competitions()->save($competition); $season = Season::firstOrNew(['name' => $data['season']]); $season->save(); if ($season->competitions()->where(['id' => $competition->id])->get()->count() == 0) { $season->competitions()->attach($competition->id); } $competition->clubsByName()->wherePivot('season_id', '=', $season->id)->detach(); foreach ($clubs as $club) { $competition->storeClub($club, $country, $season); } $num = count($clubs); if ($num % 2 != 0) { $clubs[$num++] = $competition->storeClub(['name' => '//no-name', 'location' => '//no-loc', 'num' => $num], $country, $season); } $settings = Setting::firstOrNew(['competition_id' => $competition->id, 'season_id' => $season->id]); $settings->save(); return $competition->storeCompetition($season, $num); }