ThinkPHP使用
一、控制器方法
1、加载视图方法 display()
$this -> display(); //模板名称与当前操作方法的名称一致
$this -> display(模板名称); //调用当前控制器对应目录指定名称的模板
$this -> display(控制器/模板名称); //调用其他控制器下的具体模板文件
//或 display(控制器:模板名称);
$this -> display(相对路径模板文件); //调用自定义模板文件,该模板不在传统的View目录里边,该模板相对index.php入口文件进行定位
2 assign()显示模版
① 控制器传递变量给模板
$this-> assign(名称,值);
值:可以是变量、常量、数组、对象等
② 模板显示变量
{$名称} //显示普通变量
{$名称[下标]} //显示数组元素
{$名称.下标} //显示数组元素-
{$名称:成员} //显示对象成员信息
{$名称->成员} //显示对象成员信息
注意:{ 和 $ 符号之间不能有空白,否则标签无效,例如 { $name}
③ 遍历数组(foreach/volist)
foreach遍历标签:
<foreach
name=”被遍历的变量”
item=”遍历出来的单元”
key=”k”数组元素下标变量名称
>
如果没有定义key属性,可以直接使用{$key}变量,获得元素下标变量名称,两者只能选取其一
</foreach>
volist遍历标签:
<volist
name=”被遍历的变量”
id=”遍历出来的单元”
offset=”偏移量”
length=”限制展示的数据个数”
mod=”2” 把记录按照mod数量进行捆绑
key=”k”获得从1开始的序号信息
>
如果没有定义key属性,可以直接使用{$i}变量,获得从1开始的序号信息,两者只能选取其一
{$key}:数组元素下标变量名称
</volist >
④ 在模版中使用if判断语句
<if condition="($name eq 1) OR ($name gt 100) "> value1
<elseif condition="$name eq 2"/>value2
<else /> value3
</if>
eq 或者 equal 等于
neq 或者 notequal 不等于
gt 大于
egt 大于等于
lt 小于
elt 小于等于
heq 恒等于
nheq 不恒等于
3、空控制器与空操作
空操作:是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行
空控制器:的概念是指当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器(EmptyController)
4、跳转方法
success(提示信息,跳转地址,跳转时间 )
跳转地址:默认为当前页面的前一页面的地址,通常通过U()函数制作
跳转时间:默认为1秒
error(提示信息,跳转地址,跳转时间 )
跳转地址:默认为当前页面的前一页面的地址,通常通过U()函数制作
跳转时间:默认为3秒
5、redirect()跳转方法
之前有跳转方法success(),该方法会显示一个模板页面出来
有的时候,页面跳转的时候,并不需要提示一个模板页面出来,这时候就可以调用redirect方法实现
语法:redirect(地址[,参数,跳转时间,提示信息])
地址:形式为 [分组/控制器/]操作方法
参数:数组形式,根据实际情况提供即可
跳转时间:单位为秒,默认0
提示信息:页面跳转的提示信息,也可以不设置
二、模型方法
2.1 创建
原则:一个数据表对应 一个model模型类
model类文件名和 类名 的形式 与controller控制器类 完全一致,就是把Controller字样换成是Model即可
2、实例化model对象方法
2.2 new方式
命名空间完全限定名称方式实例化自定义model对象
对象 = new \分组\Model\标识Model();
2.3 D()函数方式
语法:$obj = D(标识);
$obj = D(‘Goods’); //实例化”自己分组”对应自定义GoodsModel类对象,
并操作xx_goods数据表
$obj = D(); //实例化父类Model,不关联任何表,
用处是可以执行一些原生sql语句
2.4 M()函数方式(了解)
语法:$obj = M(标识); //标识 必须是”合法”的
$obj = M(‘Goods’); //实例化父类Model,并操作xx_goods数据表
$obj = M(); //实例化父类Model,不关联任何表,
用处是可以执行一些原生sql语句
2.5 select()方法调用
调用方法:model对象->select()
具体使用:
$model-> select(); //查询并返回数据表的全部字段、全部记录信息
$model-> select(主键id值); //查询主键信息等于条件id值的一条记录
$model-> select(‘id1,id2,id3...’); //查询主键id在条件范围内的记录
2.6辅助查询方法
1) where()条件
$model-> where(条件值); //条件值 就是普通sql语句where后边的条件信息
select * from 表名 where cat_id=3 and price>30 and id in (10,13,15)
上述sql语句可以通过如下4种方式实现:
① where(“cat_id=3and price>30 and id in (10,13,15)”)
② where(“cat_id=%dand price>%d and id in (%s)” ,3,30,’10,13,15’)
③ where(“cat_id=%dand price>%d and id in (%s)” ,array(3,30,’10,13,15’))
④ $cdt[‘cat_id’] = 3; //ThinkPHP框架推荐
$cdt[‘price’] =array(‘gt’,30);
$cdt[‘id’] =array(‘in’,’10,13,15’);
where($cdt);
2) limit()限制条数
$model-> limit(数字); //严格查询数字条数的记录
$model-> limit(偏移量,长度); //查询某个范围的记录条数
3) field ()限制查询字段
$model-> field(字段1,字段2,字段3);
4) order() 排序
$model-> order(‘排序条件字段asc/desc’);
5) group() 分组查询group by
$model-> group(分组条件);
groupby 分组查询的具体应用
2.7 统计查询
$model -> 辅助方法()->count()/sum()/avg()/max()/min();
2.8 add()方法
调用方法:model对象-&g