Codeigniter验证未显示任何内容

时间:2018-11-16 09:06:58

标签: codeigniter validation model-view-controller

  

这是我的控制器,我的表单正在提交。我已经在此处创建了验证,但是注意到正在工作

public function add_masteradmin()
        {
            $this->form_validation->set_error_delimiters("<div class='col-sm-5 col-form-label text-danger'>", '</div>');
            $this->form_validation->set_rules('full_name','Full Name','required|alpha|trim');
            $this->form_validation->set_rules('username','User Name','required|alpha|trim');
             if ($this->form_validation->run() == false ){
                 return redirect('Appconfig/master_admin');
             }
             else{
                 $post = $this->input->post();
                unset($post['submit']);

                $this->load->model('AppconfigModel');
                $this->AppconfigModel->insert_masteradmin($post);
                return redirect('Appconfig/master_admin');
             }
        }    
  

这是我的视图,我的表单所在的位置。目前,我只验证我的全名

 <div class="col-md-10 mt-3 mb-4">
        <?php echo form_open('Appconfig/add_masteradmin', ['class'=>'form-inline form-color','id'=>'masterform']); ?>
       <div class="row">
         <div class="form-group col-sm-6">
           <label  class="col-sm-5 col-form-label">Full Name</label>
             <div class="col-sm-7">
                 <?php echo form_input(['name'=>'full_name' , 'class'=>'form-control']);  ?>
              </div>
              <?php echo form_error('full_name'); ?>
           </div>

           <div class="form-group col-sm-6">
           <label  class="col-sm-5 col-form-label">Username</label>
             <div class="col-sm-7">
                 <?php echo form_input(['name'=>'username' , 'class'=>'form-control']);  ?>
              </div>
           </div> 
  <?php echo form_submit(['name'=>'submit', 'value'=>'Submit','class'=>'btn btn-first d-block mx-auto mt-4', 'id'=>'sub'])   ?>

<?php echo form_close(); ?>

2 个答案:

答案 0 :(得分:1)

首先,您不需要return重定向。其次,如果要重定向,则不能直接访问validation_errors()form_error()(因为验证错误仅适用于当前提交的实例,不适用于重定向后的实例)。

如果您希望使用重定向获取验证错误,请将该错误分配给会话变量,并在重定向后在视图中检索该错误。 或者您可以采用文档中介绍的通用方法,并通过相同的控制器方法进行验证和处理。

https://www.codeigniter.com/userguide3/libraries/form_validation.html#the-controller

或者,您可以加载视图而不是重定向,但是该方法会修改url,以便用户将在add_masteradmin上进行所有并发提交。

答案 1 :(得分:1)

应该重定向所需的视图,而不是重定向到页面,这是您所遇到的最聪明的方法:

替换

return redirect('Appconfig/master_admin');

作者

$this->load->view('AppConfig/master_admin');

然后,您将不需要在会话中保存信息。