【问题标题】:Codeigniter validations are not showing anythingCodeigniter 验证没有显示任何内容
【发布时间】:2019-04-19 10:45:05
【问题描述】:

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

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(); ?>

【问题讨论】:

    标签: codeigniter validation model-view-controller


    【解决方案1】:

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

    如果您希望使用重定向获得验证错误您必须将它们分配给会话变量并在重定向后在您的视图中检索它。 或者您可以采用文档中描述的通用方法,并在同一个控制器方法中完成所有验证和处理。

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

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

    【讨论】:

      【解决方案2】:

      您应该加载您想要的视图,而不是重定向到页面,这是您可以采用的最聪明的方法:

      替换

      return redirect('Appconfig/master_admin');
      

      通过

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

      那么您将不需要在会话中保存信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-24
        • 2014-07-21
        • 2016-02-19
        • 2020-06-16
        • 2021-02-05
        • 2018-10-10
        • 1970-01-01
        相关资源
        最近更新 更多