PHP Class yii\elasticsearch\ActiveQuery

An ActiveQuery can be a normal query or be used in a relational context. ActiveQuery instances are usually created by [[ActiveRecord::find()]]. Relational queries are created by [[ActiveRecord::hasOne()]] and [[ActiveRecord::hasMany()]]. Normal Query ------------ ActiveQuery mainly provides the following methods to retrieve the query results: - ActiveQuery::one: returns a single record populated with the first row of data. - ActiveQuery::all: returns all records based on the query results. - [[count()]]: returns the number of records. - [[scalar()]]: returns the value of the first column in the first row of the query result. - ActiveQuery::column: returns the value of the first column in the query result. - [[exists()]]: returns a value indicating whether the query result has data or not. Because ActiveQuery extends from Query, one can use query methods, such as [[where()]], [[orderBy()]] to customize the query options. ActiveQuery also provides the following additional query options: - [[with()]]: list of relations that this query should be performed with. - [[indexBy()]]: the name of the column by which the query result should be indexed. - [[asArray()]]: whether to return each record as an array. These options can be configured using methods of the same name. For example: php $customers = Customer::find()->with('orders')->asArray()->all(); > NOTE: elasticsearch limits the number of records returned to 10 records by default. > If you expect to get more records you should specify limit explicitly. Relational query ---------------- In relational context ActiveQuery represents a relation between two Active Record classes. Relational ActiveQuery instances are usually created by calling [[ActiveRecord::hasOne()]] and [[ActiveRecord::hasMany()]]. An Active Record class declares a relation by defining a getter method which calls one of the above methods and returns the created ActiveQuery object. A relation is specified by [[link]] which represents the association between columns of different tables; and the multiplicity of the relation is indicated by [[multiple]]. If a relation involves a junction table, it may be specified by [[via()]]. This methods may only be called in a relational context. Same is true for [[inverseOf()]], which marks a relation as inverse of another relation. > Note: elasticsearch limits the number of records returned by any query to 10 records by default. > If you expect to get more records you should specify limit explicitly in relation definition. > This is also important for relations that use [[via()]] so that if via records are limited to 10 > the relations records can also not be more than 10. > Note: Currently [[with]] is not supported in combination with [[asArray]].
Since: 2.0
Author: Carsten Brandt ([email protected])
Inheritance: extends Query, implements yii\db\ActiveQueryInterface, use trait yii\db\ActiveQueryTrait, use trait yii\db\ActiveRelationTrait
显示文件 Open project: yiisoft/yii2-elasticsearch Class Usage Examples

Public Methods

Method Description
__construct ( array $modelClass, array $config = [] ) Constructor.
all ( Connection $db = null ) : array Executes query and returns all results as an array.
column ( $field, $db = null )
createCommand ( Connection $db = null ) : Command Creates a DB command that can be used to execute this query.
init ( ) Initializes the object.
one ( Connection $db = null ) : ActiveRecord | array | null Executes query and returns a single row of result.
populate ( $rows )
search ( $db = null, $options = [] )

Private Methods

Method Description
createModels ( array $rows ) : array | ActiveRecord[] Converts found rows into model instances

Method Details

__construct() public method

Constructor.
public __construct ( array $modelClass, array $config = [] )
$modelClass array the model class associated with this query
$config array configurations to be applied to the newly created query object

all() public method

Executes query and returns all results as an array.
public all ( Connection $db = null ) : array
$db Connection the DB connection used to create the DB command. If null, the DB connection returned by [[modelClass]] will be used.
return array the query results. If the query results in nothing, an empty array will be returned.

column() public method

public column ( $field, $db = null )

createCommand() public method

Creates a DB command that can be used to execute this query.
public createCommand ( Connection $db = null ) : Command
$db Connection the DB connection used to create the DB command. If null, the DB connection returned by [[modelClass]] will be used.
return Command the created DB command instance.

init() public method

This method is called at the end of the constructor. The default implementation will trigger an [[EVENT_INIT]] event. If you override this method, make sure you call the parent implementation at the end to ensure triggering of the event.
public init ( )

one() public method

Executes query and returns a single row of result.
public one ( Connection $db = null ) : ActiveRecord | array | null
$db Connection the DB connection used to create the DB command. If null, the DB connection returned by [[modelClass]] will be used.
return ActiveRecord | array | null a single row of query result. Depending on the setting of [[asArray]], the query result may be either an array or an ActiveRecord object. Null will be returned if the query results in nothing.

populate() public method

Since: 2.0.4
public populate ( $rows )