codeigniter - 当我将数据提交到数据库时使用用户名进行验证
问题描述
如果我删除用户验证,请帮助我,然后保存数据,但是当附加验证名称时,错误显示...
**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 方法显示错误消息,如果使用“重定向”,则会丢失字段错误消息。目前我使用一个功能来显示表单页面,另一个功能来处理表单发布。类用户扩展。
解决方案
问题是您错误地将文件输入命名为name
此处:
<input type="file" name="name" id="image">
只需将其更改为另一个名称,form_validation 就可以正常工作。此外,请确保您已加载所有需要的库。还有一件事,你应该放置:
$this->load->view('admin/header');
$this->load->view('admin/footer');
在您的控制器文件中,而不是在视图文件中遵循 codeigniter 的 MVC
推荐阅读
- javascript - Vuelidate requiredIf 不使用复选框
- delphi - 如何自动增加内部版本号?
- asp.net-core - 在 RHEL 7 中运行 ASP.NET Core 的问题
- python - Pandas 列中的多个局部最大值超过阈值
- react-admin - 操作创建按钮路径
- visual-studio-2017-build-tools - 以正确的编码生成 .resx 资源文件
- docker - Docker 构建时间戳
- google-sheets - 如何使用 IMPORTRANGE 从底部进行 VLOOKUP
- sql - R相当于SQL中的LIKE子句[使用查找表]?
- python - 有没有更好的方法从python中的输入文件生成rest api端点?