Beispiel #1
0
 /**
  * Processes the new meal form to create a new meal
  * @return Redirect
  */
 public function create(Request $request)
 {
     // Construct candidate object
     $meal_data = $request->all();
     // Use todays date as defaults if none are given
     if (empty($meal_data['meal_timestamp'])) {
         $meal_data['meal_timestamp'] = date('d-m-Y') . ' 18:30';
     }
     if (empty($meal_data['locked_timestamp'])) {
         $meal_data['locked_timestamp'] = date('d-m-Y') . ' 15:00';
     }
     // Validate the resulting input
     $validator = Validator::make($meal_data, ['meal_timestamp' => ['date_format:d-m-Y G:i', 'required', 'after:now', 'unique:meals'], 'locked_timestamp' => ['date_format:d-m-Y G:i', 'required', 'after:now']], ['meal_timestamp.date_format' => 'De ingevulde maaltijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'meal_timestamp.required' => 'De ingevulde maaltijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'meal_timestamp.after' => 'Je kunt geen maaltijden aanmaken in het verleden', 'meal_timestamp.unique' => 'Er is al een maaltijd op deze datum en tijd', 'locked_timestamp.date_format' => 'De ingevulde sluitingstijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'locked_timestamp.required' => 'De ingevulde sluitingstijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'locked_timestamp.after' => 'De deadline voor aanmelding mag niet al geweest zijn']);
     if ($validator->passes()) {
         // Format dates to database compatible values
         $meal_data['meal_timestamp'] = DateTime::createFromFormat('d-m-Y G:i', $meal_data['meal_timestamp']);
         $meal_data['locked_timestamp'] = DateTime::createFromFormat('d-m-Y G:i', $meal_data['locked_timestamp']);
         // Save new meal
         $meal = new Meal($meal_data);
         if ($meal->save()) {
             Log::info("Nieuwe maaltijd: {$meal->id}|{$meal->meal_timestamp}|{$meal->event}");
             Flash::set(Flash::SUCCESS, 'Maaltijd toegevoegd op ' . $meal);
             return redirect('/administratie');
         } else {
             Flash::set(Flash::ERROR, 'Maaltijd kon niet worden toegevoegd');
         }
     } else {
         Session::flash('validation_errors', $validator->messages());
         // Repopulate the form
         Input::flash();
     }
     return redirect('/administratie/nieuwe_maaltijd');
 }