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

WBOY
Release: 2016-05-31 19:29:50
Original
918 people have browsed it

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

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

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

Copy after login

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

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

Copy after login

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

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

Copy after login

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

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

Copy after login

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

$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'),
));
Copy after login

同理用findAll测试了也可以。

结论:

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!