コード例 #1
0
 /**
  * Saves info about edited education row
  *
  * @param string $educationId
  * @return string
  */
 public function saveEditedEducation($educationId = '')
 {
     try {
         //User must be logged in
         if (!$this->auth->check()) {
             //Notify error
             $this->keeper->put('notificationError', 'You must log in to continue');
             //Return to login
             redirect('/login', 'location');
         }
         //Verify education edit capabilities
         if ($this->auth->user()->educations()->whereId($educationId)->count() != 1) {
             //Cannot edit
             throw new Exception('You do not have permission to edit this record', 403);
         }
         //Set validation rules
         $this->form_validation->set_rules('institution_name', 'Institution name', 'required|xss_clean');
         $this->form_validation->set_rules('major', 'Major', 'required|xss_clean');
         $this->form_validation->set_rules('year_joined', 'Year started', 'required|xss_clean');
         //Apply validation rules
         if ($this->form_validation->run() === false) {
             //Keep error messages
             $this->errorBag->logValidationErrors(['institution_name', 'major', 'year_joined']);
             //Go back to  edit page user page
             redirect($this->auth->user()->profile_uri . '/edit-education/' . $educationId, 'location');
         }
         //Save the new education data
         $results = $this->userRepo->editEducation($this->auth->user(), $educationId, ['institution_name' => $this->input->post('institution_name'), 'major' => $this->input->post('major'), 'year_joined' => $this->input->post('year_joined'), 'year_left' => $this->input->post('year_left'), 'is_current' => $this->input->post('year_left') == '']);
         //Could not save
         if ($results == null) {
             //Alert error to user
             throw new Exception('Could not save data.Try again later', 422);
         }
         //Notify success
         $this->keeper->put('notificationSuccess', 'Education skills updated');
         //All ok redirect to User profile
         redirect($this->auth->user()->profile_uri . '/about', 'location');
     } catch (Exception $e) {
         //Unexpected error
         //Notify error
         $this->keeper->put('notificationError', $e->getMessage());
         //Go back to profile page
         redirect($this->auth->user()->profile_uri . '/about', 'location');
     }
 }