2014-11-06 80 views
0

我的用戶/添加形式笨form_validation錯誤沒有顯示

<?php echo $this->session->flashdata('message'); ?> 
<?php echo form_open('user/save', array('role' => 'form')); ?> 
    <div class="form-group"> 
    <label for="username" class="control-label">Username</label> 
    <input type="text" class="form-control" name="username" value=""> 
    </div> 
    <div class="form-group"> 
    <label for="email" class="control-label">Email</label> 
    <input type="email" class="form-control" name="email" value=""> 
    </div> 
    <div class="form-group"> 
    <label for="password" class="control-label">Password</label> 
    <input type="password" class="form-control" name="password" value=""> 
    </div> 
    <div class="form-group"> 
    <label for="password_confirm" class="control-label">Confirm Password</label> 
    <input type="password" class="form-control" name="password_confirm" value=""> 
    </div> 
    <br> 
    <div class="form-group"> 
    <p> 
     <?php echo btn_submit('Save'); ?> 
     <?php echo link_to_previous_page('user', ' Back'); ?> 
    </p> 
    </div> 
<?php echo form_close(); ?> 

我保存用戶控制器

public function save() 
{ 
    $rules = $this->user->rules; 
    $this->form_validation->set_rules($rules); 

    if ($this->form_validation->run() == TRUE) { 
    $data = array(
     'username' => $this->input->post('username'), 
     'email'  => $this->input->post('email'), 
     'password' => md5($this->input->post('password')), 
     'group_id' => 1, 
     'status' => 1, 
     'created'  => date('Y-m-d H:i:s'), 
     'created_by' => date('Y-m-d H:i:s'), 
     'updated'  => date('Y-m-d H:i:s'), 
     'updated_by' => $this->session->userdata['username'] 
    ); 

    $this->user->save($data); 

    $this->session->set_flashdata('message', msg_success('Insert data success')); 
    redirect('user'); 
    } 

    $this->session->set_flashdata('message', validation_errors()); 
    redirect('user/add'); 
} 

我已在我的user_model,我的驗證規則的功能,我設置了別名'user',以下是規則:

public $rules = array(
    'username' => array(
    'field' => 'username', 
    'label' => 'Username', 
    'rules' => 'trim|callback__unique_username|required' 
), 
    'email' => array(
    'field' => 'email', 
    'label' => 'Email', 
    'rules' => 'trim|valid_email|callback__unique_email|xss_clean|required' 
), 
    'password' => array(
    'field' => 'password', 
    'label' => 'Password', 
    'rules' => 'trim|matches[password_confirm]|required' 
), 
    'password_confirm' => array(
    'field' => 'password_confirm', 
    'label' => 'Confirm Password', 
    'rules' => 'trim|matches[password]|required' 
) 
); 

我在我的其他表單上做了同樣的事情,但是它有效,我錯過了什麼?謝謝

回答

0

嘗試這樣

我的用戶/添加形式

<?php echo $this->session->flashdata('message'); ?> 
<?php echo form_open('user/save', array('role' => 'form')); ?> 
    <div class="form-group"> 
    <label for="username" class="control-label">Username</label> 
    <input type="text" class="form-control" name="username" value=""> 
    </div> 
    <?php echo form_error('username'); ?> 
    <div class="form-group"> 
    <label for="email" class="control-label">Email</label> 
    <input type="email" class="form-control" name="email" value=""> 
    </div> 
    <?php echo form_error('email'); ?> 
    <div class="form-group"> 
    <label for="password" class="control-label">Password</label> 
    <input type="password" class="form-control" name="password" value=""> 
    </div> 
    <?php echo form_error('password'); ?> 
    <div class="form-group"> 
    <label for="password_confirm" class="control-label">Confirm Password</label> 
    <input type="password" class="form-control" name="password_confirm" value=""> 
    </div> 
    <?php echo form_error('password_confirm'); ?> 
    <br> 
    <div class="form-group"> 
    <p> 
     <?php echo btn_submit('Save'); ?> 
     <?php echo link_to_previous_page('user', ' Back'); ?> 
    </p> 
    </div> 
<?php echo form_close(); ?> 

我保存用戶控制器上的功能

<?php 
public function save() 
{ 
    $rules = $this->user->rules; 
    $this->form_validation->set_rules($rules); 

    if ($this->form_validation->run() == TRUE) { 
    $data = array(
     'username' => $this->input->post('username'), 
     'email'  => $this->input->post('email'), 
     'password' => md5($this->input->post('password')), 
     'group_id' => 1, 
     'status' => 1, 
     'created'  => date('Y-m-d H:i:s'), 
     'created_by' => date('Y-m-d H:i:s'), 
     'updated'  => date('Y-m-d H:i:s'), 
     'updated_by' => $this->session->userdata['username'] 
    ); 

    $this->user->save($data); 

    $this->session->set_flashdata('message', msg_success('Insert data success')); 
    redirect('user'); 
    } 
else 
{ 
    $this->load->view('load_your_add_from_view_here'); 
} 
} 
+0

對不起,先生,但它並沒有,進出口使用flashdata這樣我就可以重定向用它,在我的其他模塊的工作,它完美的作品,但它不能在這一個。我不知道爲什麼? :( – junior 2014-11-06 08:31:30

0

你確定你加載會話類?

$this->load->library('session'); 
+0

當然,因爲它在其他模塊中運行得非常好 – junior 2014-11-07 13:22:40