ThinkPHP学习笔记(六):关于命名范围的使用
来源:互联网 发布:那些年网络歌曲动漫 编辑:程序博客网 时间:2024/05/21 04:16
要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用。
_scope属性是一个数组,每个数组项表示定义一个命名范围,命名范围的定义格式为: '命名范围标识名'=>array('属性1'=>'值1','属性2'=>'值2'...)
命名范围标识名:可以是任意的字符串,用于标识当前定义的命名范围。
命名范围支持的属性包括: where 查询条件
、field 查询字段
、order 结果排序
、table 查询表名
、limit 结果限制
、page 结果分页
、having having查询
、group group查询
、lock 查询锁定
、distinct 唯一查询
、cache 查询缓存
// 在 Lib/Model/UserModel.class.php 里定义:class UserModel extends CommonModel { protected $_scope = array( 'jige' => array( 'where' => array( 'score' => array('egt', 60), ), 'order' => 'id asc', 'limit' => 10 ), 'ziduan' => array( 'field' => 'nick_name, score', 'limit' => 5 ), );}
// 在控制器里:$user = D('User');$data = $user->scope('jige')->select();//得到的查询条件是:SELECT * FROM `mk_user` WHERE ( `score` >= 60 ) ORDER BY id asc LIMIT 10
如果两个字段里都有设置相同的limit
,后面一个会覆盖前面的
$data = $user->scope('jige,ziduan')->select();//得到的查询条件是:SELECT `nick_name`,`score` FROM `mk_user` WHERE ( `score` >= 60 ) ORDER BY id asc LIMIT 5
使用命名范围的同时, 也可以使用 where 语句
$data = $user->scope('jige,ziduan')->where('id < 50')->select();//得到的查询条件是:SELECT `nick_name`,`score` FROM `mk_user` WHERE ( `score` >= 60 ) AND ( id < 50 ) ORDER BY id asc LIMIT 5
0 0
- ThinkPHP学习笔记(六):关于命名范围的使用
- ThinkPHP 命名范围
- ThinkPHP学习笔记(六)常用的连贯操作和模版的使用
- ThinkPHP学习笔记(六)使用CURD对User数据库数据进行删除和修改
- Thinkphp学习笔记(一)————初始的目录结构和命名规范
- ThinkPHP学习笔记—命名空间
- PMP学习笔记(六):项目范围管理
- ThinkPHP学习笔记(六)实例化模型的四种方法
- [学习笔记]变量的定义与作用范围(使用)
- SqlSession的使用范围---Mybatis学习笔记(五)
- SqlSession的使用范围---Mybatis学习笔记(五)
- ThinkPHP学习笔记(十二)ThinkPHP的分页以及验证码的使用
- C++学习笔记(六):关于ifdef 和ifndef的使用
- thinkphp的学习笔记
- Python学习笔记(六)关于日期的一些操作
- phalcon学习笔记-----命名空间的使用
- ThinkPHP学习笔记(一):ThinkPHP 框架的简单操作
- ThinkPHP学习笔记(二):ThinkPHP框架的模板技术
- Spring中使用到的各个对象的详细介绍
- Hello C Blog
- 37-1-3
- 北大春节面对“两难”:方正违规被查,火星人穷追不舍
- 搭建go交叉编译环境
- ThinkPHP学习笔记(六):关于命名范围的使用
- Effective Java(二)
- Github的基本功能(转自知乎)
- hrbust 1563 亲和数
- SPA(单页面应用)的简单实现
- 使用Python分析移动语音账单
- 删除链表结点--O(1)时间复杂度
- NYOJ113 - 字符串替换
- linux的网络配置和传输文件