首页 > 解决方案 > 当我将数据提交到数据库时使用用户名进行验证

问题描述

如果我删除用户验证,请帮助我,然后保存数据,但是当附加验证名称时,错误显示...

    **controller code**
    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    class Category extends CI_Controller{
        
        //this method will show category list page
        public function index()
        {
            $this->load->view('admin/category/list');
        }
    
        //this method will show create category page
        public function create()
        { 
            $this->load->model('Category_model');
            $this->load->library('form_validation');
    
            $this->form_validation->set_error_delimiters('<p class="invalid-feedback">','</p>');
            $this->form_validation->set_rules('name','Name','trim|required');
    
            if($this->form_validation->run()==TRUE)
            {
                //will save category in database
                $formArray['name']=$this->input->post('name');
                $formArray['status']=$this->input->post('status');
                $formArray['created_at']=date('Y-m-d H:i:s');
                $this->Category_model->create($formArray);
                $this->session->set_flashdata('success','category added successfully');
                redirect(base_url().'admin/category/index');
                
    
    
            }else{
                //will show error
                $this->load->view('admin/category/create'); 
            }
    
            
        }
    
        //this method will show category edit page
        public function edit()
        {
            
        }
    
        //this is for delete a category page
        public function delete()
        {
            
        }
    }
    
    **Model code**
    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    class Category_model extends CI_Model{
    
            public function create($formArray){
                $this->db->insert('categories',$formArray);
            }
        }
    **view code**
    <?php $this->load->view('admin/header');?>
    
     <!-- Content Wrapper. Contains page content -->
      <div class="content-wrapper">
        <!-- Content Header (Page header) -->
        <div class="content-header">
          <div class="container-fluid">
            <div class="row mb-2">
              <div class="col-sm-6">
                <h1 class="m-0">Categories</h1>
              </div><!-- /.col -->
              <div class="col-sm-6">
                <ol class="breadcrumb float-sm-right">
                  <li class="breadcrumb-item"><a href="#">Home</a></li>
                  <li class="breadcrumb-item"><a href="<?php echo base_url().'admin/category/index';?>">Categories</a></li>
                  <li class="breadcrumb-item active">Create New Categories</li>
                </ol>
              </div><!-- /.col -->
            </div><!-- /.row -->
          </div><!-- /.container-fluid -->
        </div>
        <!-- /.content-header -->
    
        <!-- Main content -->
        <div class="content">
          <div class="container-fluid">
            <div class="row">
              <div class="col-lg-12">
                <div class="card card-primary">
                  
                    <div class="card-header">
                        <div class="card-title">
                            Create New Category
                        </div>
                        </div>
                    </div>
      <form name="categoryForm" id="categoryForm" method="post" action="<?php echo base_url().'admin/category/create'?>">
    
                    <div class="card-body">
                            <div class="form-group">
                              <label>Name</label>
                              <input type="text" name="name" id="name" value="" class="form-control <?php echo (form_error('name')!="") ? 'is-invalid':'';?>">
                              <?php echo form_error('name');?>
                            </div>
    
                            <div class="form-group">
                              <label>Image</label><br>
                              <input type="file" name="name" id="image">
                            </div>
    
                            <div class="custom-control custom-radio float-left">
                              <input value="1" type="radio" id="statusActive" name="status" checked="">
                              <label for="statusActive" class="custom-control-lable">Active</label>
                            </div>
    
                             <div class="custom-control custom-radio float-left ml-3">
                              <input value="0" type="radio" id="statusBlock" name="status">
                              <label for="statusBlock" class="custom-control-lable">Block</label>
                            </div>
                    </div>
                  <div class="card-footer">
                    
                    <button name="submit" type="submit" class="btn btn-primary">Submit</button>
                    <a href="<?php echo base_url().'admin/category/index';?>" class="btn btn-secondary">Back</a>
                  </div>
      </form>
    
                </div>
              </div>
              <!-- /.col-md-6 -->
            </div>
            <!-- /.row -->
          </div><!-- /.container-fluid -->
        </div>
        <!-- /.content -->
      </div>
      <!-- /.content-wrapper -->
    
    <?php $this->load->view('admin/footer');?>
    
        enter code here

请帮助我我们在哪里做错了?我认为名称验证不正确,但我不知道要跟踪错误。我发现 CodeIgniter 表单验证通过 load->view 方法显示错误消息,如果使用“重定向”,则会丢失字段错误消息。目前我使用一个功能来显示表单页面,另一个功能来处理表单发布。类用户扩展。

标签: codeignitervalidation

解决方案


问题是您错误地将文件输入命名为name此处:

<input type="file" name="name" id="image">

只需将其更改为另一个名称,form_validation 就可以正常工作。此外,请确保您已加载所有需要的库。还有一件事,你应该放置:

$this->load->view('admin/header');
$this->load->view('admin/footer');

在您的控制器文件中,而不是在视图文件中遵循 codeigniter 的 MVC


推荐阅读