ThinkPHP3.0完全开发手册
借助PHP5语言的特性,ThinkPHP实现了动态查询,包括下面几种:
getBy |
根据某个字段的值查询数据 |
例如,getByName,getByEmail |
getFieldBy |
根据某个字段查询并返回某个字段的值 |
例如,getFieldByName |
top |
获取前多少条记录(需要高级模型支持) |
例如,top8,top12 |
一、getBy动态查询
该查询方式针对数据表的字段进行查询。例如,User对象拥有id,name,email,address 等属性,那么我们就可以使用下面的查询方法来直接根据某个属性来查询符合条件的记录。
$user = $User->getByName('liu21st');
$user = $User->getByEmail('liu21st@gmail.com');
$user = $User->getByAddress('中国深圳');
暂时不支持多数据字段的动态查询方法,请使用find方法和select方法进行查询。
二、getFieldBy动态查询
针对某个字段查询并返回某个字段的值,例如
$user = $User->getFieldByName('liu21st','id');
表示根据用户的name获取用户的id值。
三、top动态查询
ThinkPHP还提供了另外一种动态查询方式,就是获取符合条件的前N条记录(和定位查询一样,也要求当前模型类必须继承高级模型类后才能使用)。例如,我们需要获取当前用户中积分大于0,积分最高的前5位用户 :
$User-> where('score>80')->order('score desc')->top5();
要获取积分的前8位可以改成:
$User-> where('score>80')->order('score desc')->top8();