CI框架扩展自定义控制器的方法
扩展CI中的控制器
有时需要对CI中的控制器作统一操作,如进行登录和权限验证,这时就可以通过扩展CI控制器来实现。
扩展CI控制器只需要在application/core文件夹中建一个继承自CI_Controller类的MY_Controller类即可,然后在这个类中实现自己需要的逻辑。
关于上面这句话,有两点需要解释一下:
1、为什么要在application/core文件夹中:是因为基类CI_Controller是在system/core文件夹中,这里需要跟system中对应。
2、为什么扩展的控制器前缀是MY_,可否换成其他的:这个前缀是在application/config/config.php中定义的:
$config['subclass_prefix'] = 'MY_';
只需要这两处对应上就可以了
二、模型
示例application/models/user_model.php:
<?php
/**
* User_model
*/
class User_model extends CI_Model{ //return all users
public function getAll() {
$res = $this -> db -> get('test');
return $res -> result();
}
}
注意点:
1、文件名全小写
2、类名首字母大写
3、模型中可以使用超级对象中的属性
4、建议用_model作后缀,防止跟其他类名冲突
使用示例:
public function index() {
//load model
$this -> load -> model('User_model');
$usermodel = $this -> User_model -> getAll(); //别名
$this -> load -> model('User_model', 'user');
$usermodel = $this -> user -> getAll();
var_dump($usermodel);
}
CI框架扩展自定义控制器的方法的更多相关文章
- UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项
原文 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 在 Windows 10 的前几个版本中将页面内容扩展到标题栏上还算简单,主要是没什么坑.直到一些新控件的引入和一些外观设计趋势变化之后 ...
- CI框架扩展系统类库
CI框架不支持像yii2框架那样,可以直接在controllers下创建CommonController并继承父类,那么我们想要做登录控制或权限控制时,直接在父类控制器操作是不合理的. 这时比较方便的 ...
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- CI框架中自定义view文件夹位置
要想自定义view文件夹的位置,首先要了解CI框架时如何加载view文件夹的. CI中默认调用view的方法是: $this->load->view(); //这一行代码的原理是什么呢?请 ...
- 在CI框架下执行存储的方法
我直接把代码摆在这里分享哈 <?php /** * * Created by JetBrains PhpStorm. * User: lsl * Date: 14-1-8 * Time: 下午2 ...
- 【ci框架学习】控制器-视图
基础的东西就不写了,网上大把的教程,可以慢慢磨.这里说些要注意的要点. 1.所有控制器都必须间接或者直接继承控制器基类 CI_Controller. 2.文件命名尽量小写,因为ci使用的是pathin ...
- CI框架篇之控制器篇--设置路由(1)
CodeIgniter 定义默认控制器 当你的网站不存在某个URI 或者 用户直接从根目录访问的时候,CodeIgniter 会加载默认控制器. 打开 application/config/route ...
- CI框架--数据库Query_Builder中的方法
下面是DB_Query_Builder.php中,各个方法的声明: 选择字段(select) public function select($select = '*', $escape = NULL) ...
- List<T>直接充当Combox控件DataSource并扩展自定义记录的方法
一般认为List只有转换为DataTable后才能充当CombBox的数据源,其实不然: List<SYS_COMMANDS> comdList = _menuMan.Load(c =&g ...
随机推荐
- linux下安装mysql5.7.25详细教程
前言 最近项目上线,开始给用户测试了.搞下来好多台服务器,自然要装一个mysql的服务器.想想广大博友应该都会遇到如何装mysql的问题,就此分享,给大家一个安装指南.供大家以后安装的时候,提高效率, ...
- mysql oracle sql获取树 父级 子级 及自己
select * from ( select t.*,d.TABLE_NAME,d.QUERY_SQL,d.data_control_col,d.id table_id,d.where_sql fro ...
- JPA或Hibernate中使用原生SQL实现分页查询、排序
发生背景:前端展示的数据需要来自A表和D表拼接,A表和D表根据A表的主键进行关联,D表的非主键字段关联C表的主键,根据条件筛选出符合的数据,并且根据A表的主键关联B表的主键(多主键)的条件,过滤A表中 ...
- 关于javaweb开发的环境搭建(一)Tomcat
进行Tomcat的下载及环境配置 1.下载地址 http://tomcat.apache.org/ 2.下载的注意事项 下载的Tomcat版本要与自身电脑安装的java版本相匹配,下载时,点击 ...
- ArcEngine语法笔记(VB)
1.获取图层字段 Dim pTable As ITable = pLayer Dim pField As IField pField = pTable.Fields.Field(i) Next 2. ...
- C语言之枚举数据类型
枚举数据类型概述:1.枚举类型是C语言的一种构造类型.它用于声明一组命名的常数,2.当一个变量有几种可能的取值时,可以将它定义为枚举类型.3.枚举类型是由用户自定义的由多个命名枚举常量构成的类型,其声 ...
- 线性基 - 寻找异或第K大
XOR is a kind of bit operator, we define that as follow: for two binary base number A and B, let C=A ...
- 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第六节:第一境尾声
在第一境中,我们主要了解了爬虫的一些基本原理,说原理也行,说基础知识也罢,结果就是已经知道一个小爬虫是如何诞生的了~那么现在,请默默回想一下,在第一境中,您都掌握了哪些内容?哪些还比较模糊?如果还有什 ...
- C++读书笔记
C与C++的不同点 C++在struct,union中定义的函数叫成员函数,在class中定义的数据叫数据成员 C++引入了三个存取权限的关键字:public,protected,private pu ...
- 理解Stream(一)——串行与终止操作
Java 8 stream特性是一个能快速降低开发人员工作量的语法糖,用起来很简单,用好了很难.这里就通过一系列的博客对几个常见的错误进行解释说明,并给出替代方法.这里先说明串行和终止操作. 首先,给 ...