Yii使用find findAll查找出指定字段的实现方法


Posted in PHP onSeptember 05, 2014

本文以实例形式展示了Yii使用find findAll查找出指定字段的实现方法,分享给大家供大家参考之用。具体方法如下:

总所周知,采用如下方法:

modelName::model() -> find()  //找出的是一个对象
modelName::model() -> findALL()//找出的是一个对象集合的数组

可以找出对象与对象集合的数组,那么如何找出我所需要的字段的数据,而不是全部字段的数据呢?之前我是这么做的:

$criteria = new CDbCriteria;
$criteria->select = 'username,id,email';
$criteria->order = 'id DESC';
$users = modelName::model()->findAll( $criteria );

后台无意中看到别人有这么写的,方法很不错:

$users = modelName::model()->findAll(array(
  'select' =>array('username','id','email'),
  'order' => 'id DESC', 
));

测试后发现果然可以用,那么find也可以这么操作:

$user = modelName::model()->find(array(
  'select' =>array('username','id','email'),
  'order' => 'id DESC',
  'condition' => 'id='.$id,
));

当然了,这么做肯定不安全了,换成下面的方法同样可以:

$users = $this->user->find(array(
  'select'=>array('id','username','email'),
  'order' => 'id DESC',
  'condition' => 'state=:state AND id=:id',
  'params' => array(':state'=>'1',':id' => '2'),
));

同理用findAll测试了也可以。

结论:

通过这种方法能够很方便的获取所需要的数据,当然需要分页的时候还是 需要 new 一下 CDbCriteria 的。

希望本文所述对大家采用Yii进行数据库程序设计能有所帮助。

PHP 相关文章推荐
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
php 数组随机取值的简单实例
May 23 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 #PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 #PHP
Chrome Web App开发小结
Sep 04 #PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 #PHP
php设计模式之简单工厂模式详解
Sep 04 #PHP
Laravel框架表单验证详解
Sep 04 #PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 #PHP
You might like
重置版战役片段
2020/04/09 魔兽争霸
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
一些技巧性实用js代码小结
2009/10/14 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
Python中的getopt函数使用详解
2015/07/28 Python
python opencv之SIFT算法示例
2018/02/24 Python
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
Python 如何对文件目录操作
2020/07/10 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
Java程序员面试题
2016/09/27 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
医院院务公开实施方案
2014/05/03 职场文书
出国英文推荐信
2014/05/10 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
如何获取numpy array前N个最大值
2021/05/14 Python
浅谈Python数学建模之数据导入
2021/06/23 Python
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis