Home > Backend Development > PHP Tutorial > Yii uses find findAll to find the implementation method of specified fields, yiifindall_PHP tutorial

Yii uses find findAll to find the implementation method of specified fields, yiifindall_PHP tutorial

WBOY
Release: 2016-07-13 10:19:28
Original
1204 people have browsed it

Yii uses find findAll to find out the implementation method of the specified field, yiifindall

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()  //找出的是一个对象集合的数组

Copy after login

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 );

Copy after login

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', 
));

Copy after login

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,
));

Copy after login

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

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 be helpful to everyone using Yii for database programming.

What is the difference between the usage of Find and FindAll in c#?

Get the data you need. Here are some standard methods in Model to get the data you need: findAll string $conditions array $fields string $order int $limit int $page int $recursive [$conditions Type: string] Retrieve conditions , which is the where clause in sql, like this $conditions = "race = 'wookie' AND thermal_detonators > 3". [$fields Type: array] Retrieve properties, which are projections, specifying all the properties you wish to return. (Annotation: Here I did not use the pro-SQL name of field but the pro-object name of attribute. I believe that many PHPers are more familiar with the development model based on Sql and DTO, but one of the original intentions of introducing Model is to convert the relational database into Object operations, so the projection query should be understood as retrieving certain attributes of the object) [$order Type: string] The sorting attribute specifies the attribute name of order by [TODO: check whether the multiple order field be supported] [$limit Type: int ] Result set data entry limit [$page Type: int] Result set paging index, the default is to return the first page [$recursive Type: int] When recursive is set to an integer greater than 1, other objects associated with the model will be returned. (Annotation: If you have used an ORM tool like Hibernate, it is not difficult to understand that this attribute is the LazyLoad attribute, but it is not completely the same. The numerical value represents the number of levels of cascading queries, for example, user.country.city .address.id) find string $conditions array $fields string $order int $recursive The difference between the find method and the findAll method is that the findAll method returns all matching result sets, and the find method only returns the first result in the list.

Under what circumstances can Yii directly use find()->attributes to obtain the queried fields?

The premise is that this attribute must be defined in the entity file corresponding to the database.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/874630.htmlTechArticleYii uses find findAll to find the implementation method of the specified field, yiifindall This article shows Yii using find findAll to find in the form of an example Outline the implementation method of the specified field and share it with everyone...
Related labels:
yii
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