Home > Article > Backend Development > Yii uses find findAll to find out the implementation method of the specified field
This article shows the implementation method of Yii using find findAll to find the specified field in the form of an example, and shares it with everyone for your reference. The specific method is as follows:
As we all know, the following method is used:
modelName::model() -> find() //找出的是一个对象 modelName::model() -> findALL() //找出的是一个对象集合的数组
I can find the array of objects and object collections, so how do I find the fields I need? What about the data instead of the data of all fields? I did this 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 turns out 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, you can also test it with findAll.
Conclusion:
This method can easily obtain the required data. Of course, you still need to new CDbCriteria when paging is needed.
I hope this article will help you use Yii for database programming.
For more related articles on how Yii uses find findAll to find out the implementation of specified fields, please pay attention to the PHP Chinese website!