2015-02-24 2 views
0

Я разрабатываю проект с помощью Parse + CodeIgniter. У меня есть два экрана для управления ParseUsers: allUsers.php, которые перечисляют всех пользователей. И detailUser.php, которые создают/изменяют пользователя.CodeIgniter: Хорошая практика проверки правильности

Когда пользователь отправляет форму (новый ParseUser), я вызываю метод сохранения. Это содержит код:

try{ 

       if ($user_id) 
        $user->save(true); // Update 
       else 
        $user->signUp(); // Insert 

       $this->session->set_flashdata('success', 'Success'); 
       redirect('all-users');    
      } 
      catch(Parse\ParseException $error){ 
       $error_message = $error->getMessage(); 
       $this->session->set_flashdata('error', 'Error: ' . $error_message); 
       $this->data['user'] = $user; 
       $this->view = 'user/userDetail'; 
      }   

И зрения, у меня есть это (пример имени пользователя):

<input type="text" id="name" name="name" class="form-control" required value="<?php if(isset($user)): echo $user->name; endif;?>"> 

форма поддержания поля заполнены правильно, но flashdata он пуст, если я освежить страницы, чем появляется flashdata. Итак, после поиска я обнаружил, что люди говорят, что flashdata работает только с перенаправлением.

Если я перенаправляю свою страницу, появляются flashdata. Но поля не заполнены.

Я читал о set_value, это правильный способ поддерживать поля? Но мне нравится иметь всего два вида, один из которых - список всех, а другой - создание/редактирование пользователей. Итак, если я использую set_value, это возможно? Что такое лучшая практика?

ответ

0

использование нагрузки вместо перенаправления

 try{ 

      if ($user_id) 
       $user->save(true); // Update 
      else 
       $user->signUp(); // Insert 

      $this->session->set_flashdata('success', 'Success'); 
      $this->load->view('path');//use load instead of redirect    
     } 
     catch(Parse\ParseException $error){ 
      $error_message = $error->getMessage(); 
      $this->session->set_flashdata('error', 'Error: ' . $error_message); 
      $this->data['user'] = $user; 
      $this->view = 'user/userDetail'; 
     } 
Смежные вопросы