ci框架(二),ci框架_PHP教程
ci框架(二),ci框架
自定义SQL语句
当提供的API满足不了我们对SQL语句的要求的时候,我们通常是自己来写SQL语句,CI也提供了比较强大了,能够满足我们需求的一般的sql的API。
$res=$this->db->select('id,name') ->from('表名') ->whrer('id >=',5)//注意id后面要有个空格 ->limit(3,2)//这里与sql的limit是顺序是反的 ->order_by('id desc ') ->get();//翻译成sql语句 var_dump($res->result()); echo $this->db->last_query();//先是最近一条SQL
自定义扩展控制器
在application/core中新建MY_Controller.php
class MY_Controller extends CI_Controller { public function __construct() { parent::__construct(); //一定呀先调用父类的构造方法 //登录验证、权限验证、其他操作。。。 } }
同时需要在application/config/config.php中配置一下:
$config['subclass_prefix'] = 'MY_';
自定义扩展模型
在application/models中创建user_model.php
class User_model extends CI_Model { public function getAll() { $res = $this->db->get('表名'); return $res->result(); } }
在控制器中调用自定义模型
application/controllers:
class User extends MY_Controller { public function index() { $this->load->model('User_model');//调用以类名为主,而不是文件名
$list = $this->User_model->getAll();//调用模型获取数据
$this->load->view('user/index',array('list'=>$list));//加载视图 } }
加载模型的时候可以给模型取一个名字:
$this->load->model('User_model','user');//调用以类名为主,而不是文件名 $list = $this->user->getAll();//调用模型获取数据
Url相关函数
在表单验证的时候,需要把数据传给控制器,怎么准确的而且可扩展的写action呢,调用API:
public function addView() { $this->load->helper('url');//为了不把表单传递的地址写死,用url函数 $this->load->view('user/add'); }
在user/add.php视图当中:
form action="" method="post">
form>
如果是index.php目录的话,用:
base_url();
这个API。
同时,每次加载url很麻烦,也可是设置成自动加载,在config/config.php中修改:
$config['helper'] = array('url');
可能在后面的版本中就没有这个自动加载了。
路由
$route['rouxx/showxx/([\d]+)\.html'] = 'rou/show/$1';//插入这句话
分页