本讲讲以一个数据库增删改查的小例子演示codeigniter 3.x的使用。
1.安装WAMPSERVER(略)
2.下载Codeigniter 3.X,并解压到wampserver 的 www目录中,这里改名为crud0(略)
3.配置Codeigniter 3.X以及数据库
application/config/config.php
$config['base_url'] = 'http://localhost/crud0/';
application/config/autoload.php
$autoload['libraries'] = array('database','session','form_validation');
$autoload['helper'] = array('url');
新建一个数据库crud0以及配置application/config/database.php
创建一个数据表users
CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`created_at` date NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
4.创建controllers, model的对应文件(内容会在以后的教程中分步骤以此演示)
application/controllers/User.php
application/views/create.php, edit.php, 以及list,php,
5. User.php以及form的验证工作
application/controllers/User.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
public function create(){
$this->form_validation->set_rules('name','Name','required');
$this->form_validation->set_rules('email','Email','required|valid_email');
if($this->form_validation->run() == false){
$this->load->view('create');
}else{
//save user to database;
}
}
}
其对应的application/views/create.php
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>CRUD application -- create</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
</head>
<body>
<div class="navbar navbar-dark bg-dark">
<div class="container">
<a href="#" class="navbar-brand">CURD Application</a>
</div>
</div>
<div class="container pt-5">
<h3>Create User</h3>
<hr>
<form class="" name="createUser" action="<?php echo base_url().'index.php/user/create';?>" method="post">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="">Name</label>
<input type="text" name="name" value="<?php echo set_value('name');?>" class="form-control">
<?php echo form_error('name');?>
</div>
<div class="form-group">
<label for="">Email</label>
<input type="text" name="email" value="<?php echo set_value('email');?>" class="form-control">
<?php echo form_error('email');?>
</div>
<div class="form-group">
<button class="btn btn-primary">Create</button>
<a href="#" class="btn btn-secondary">Cancel</a>
</div>
</div>
</div>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
</body>
</html>
这里给出个form要求email, name不能为空,可以故意给出错误输入尝试一下。注意,这里只要有一个条件不满足,就统统返回全部错误信息。在该例子中,这个设定很粗暴,以后会做修改。