/** * Store a newly created resource in storage. * @access public * @return Redirect */ public function store() { // input data $data = Input::except('_token', 'search'); // validation rules $rules = $this->getValidationRules(); // validate data using rules $validator = Validator::make($data, $rules); if ($validator->fails()) { if (!$data['aou_list_id']) { $flashMessage = 'No sighting selected.'; } return Redirect::to('/admin/trips/' . $data['trip_id'] . '/sightings')->withErrors($validator); } else { try { $sighting = new Sighting(); $sighting->fill($data)->save(); $flashMessage = 'Added sighting.'; } catch (Exception $e) { $errorMessage = $e->getMessage(); // most likely error is duplicate sighting; UNIQUE constraint violation if (stripos($errorMessage, 'duplicate entry') > 0) { $errorMessage = 'Duplicate sighting.'; } $flashMessage = $errorMessage; } return Redirect::to('/admin/trips/' . $data['trip_id'] . '/sightings')->with('flashMessage', $flashMessage); } }