This article mainly introduces the implementation method of Yii using find findAll to find the specified field. It is a very practical skill that requires Friends can refer to it.
Friends who have used Yii know that the following method is used:
modelName::model()->find() //找出的是一个对象 modelName::model()->findALL() //找出的是一个对象集合的数组
I can find arrays of objects and object collections, so how do I find the data of the fields I need instead of all the fields? This is what I did before:
$criteria=new CDbCriteria; $criteria->select='username,id,email'; $criteria->order='id DESC'; $users=modelName::model()->findAll( $criteria );
I accidentally saw someone else writing this in the background. The method is very good:
$users=modelName::model()->findAll(array('select'=>array('username','id','email'),'order'=>'id DESC'));
After testing, it was found that it works, so find can also do this:
$user=modelName::model()->find(array('select'=>array('username','id','email'),'order'=>'id DESC','condition'=>'id='.$id, ));
Of course, this is definitely not safe. You can also use the following method:
$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')));
Similarly, it is also possible to test with findAll.
Conclusion:
This method can easily obtain the required data. Of course, you still need to new CDbCriteria when paging is needed.