Yii使用find findAll查找出指定字段的實現方法


Yii使用find findAll查找出指定字段的實現方法,非常實用的技巧,需要的朋友可以參考下。

用過Yii的朋友都知道,采用如下方法:

1 modelName::model()->find() //找出的是一個對象
2 modelName::model()->findALL() //找出的是一個對象集合的數組

可以找出對象與對象集合的數組,那么如何找出我所需要的字段的數據,而不是全部字段的數據呢?之前我是這么做的:

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

后台無意中看到別人有這么寫的,方法很不錯:

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

測試后發現果然可以用,那么find也可以這么操作:

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

當然了,這么做肯定不安全了,換成下面的方法同樣可以:

1 $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 的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM