<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="ThinkPHP3.1命名范围的使用 - 新特性" id="card1">
<p> 游客</p><p>
标题:ThinkPHP3.1命名范围的使用 - 新特性<br/>
正文:<br/>
ThinkPHP3.1的命名范围功能，给模型操作提供了一系列的（连贯操作）封装，让你更方便的查询和操作数据。下面我们就来具体了解下这一用法。1.定义属性要使用命名范围功能，主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用。<br/> 我们首先定义_scope属性：class NewsModel extends Model {<br/>  protected $_scope = array(<br/>    // 命名范围normal<br/>    'normal'=&amp;gt;array(<br/>      'where'=&amp;gt;array('status'=&amp;gt;1),<br/>    ),<br/>    // 命名范围latest<br/>    'latest'=&amp;gt;array(<br/>      'order'=&amp;gt;'create_time DESC',<br/>      'limit'=&amp;gt;10,<br/>    ),<br/>  );<br/> }_scope属性是一个数组，每个数组项表示定义一个命名范围，命名范围的定义格式为：'命名范围标识'=&amp;gt;array(<br/>  '属性1'=&amp;gt;'值1',<br/>  '属性2'=&amp;gt;'值2',<br/>  ...<br/> )2.命名范围标识：可以是任意的字符串，用于标识当前定义的命名范围。命名范围支持的属性包括：where查询条件field查询字段order结果排序table查询表名limit结果限制page结果分页havinghaving查询groupgroup查询lock查询锁定distinct唯一查询cache查询缓存  每个命名范围的定义可以包括这些属性中一个或者多个。3.方法调用属性定义完成后，接下来就是使用scope方法进行命名范围的调用了，每调用一个命名范围，就相当于执行了命名范围中定义的相关操作选项。调用某个命名范围最简单的调用方式就直接调用某个命名范围，例如：$Model = D('News'); // 这里必须使用D方法 因为命名范围在模型里面定义<br/>$Model-&amp;gt;scope('normal')-&amp;gt;select();<br/>$Model-&amp;gt;scope('latest')-&amp;gt;select()<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1446&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1446&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1446&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1446&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1446&amp;Page=4">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1446">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1446">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>