首页 > 开发 > PHP > 正文

ThinkPHP3.1新特性之命名范围的使用

2024-05-04 22:20:29
字体:
来源:转载
供稿:网友

ThinkPHP3.1的命名范围功能,给模型操作提供了一系列的(连贯操作)封装,让你更方便的查询和操作数据。下面我们就来具体了解下这一用法。

1.定义属性

要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用。
我们首先定义_scope属性:

class NewsModel extends Model {  protected $_scope = array(    // 命名范围normal    'normal'=>array(      'where'=>array('status'=>1),    ),    // 命名范围latest    'latest'=>array(      'order'=>'create_time DESC',      'limit'=>10,    ),  ); }

_scope属性是一个数组,每个数组项表示定义一个命名范围,命名范围的定义格式为:

'命名范围标识'=>array(  '属性1'=>'值1',  '属性2'=>'值2',  ... )

2.命名范围标识:可以是任意的字符串,用于标识当前定义的命名范围。

命名范围支持的属性包括:

where 查询条件
field 查询字段
order 结果排序
table 查询表名
limit 结果限制
page 结果分页
having having查询
group group查询
lock 查询锁定
distinct 唯一查询
cache 查询缓存
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表