PHP Trait yii\db\ActiveQueryTrait

Since: 2.0
Author: Qiang Xue ([email protected])
Author: Carsten Brandt ([email protected])
显示文件 Open project: yiisoft/yii2

Public Properties

Property Type Description
$asArray whether to return each record as an array. If false (default), an object of [[modelClass]] will be created to represent each record.
$modelClass the name of the ActiveRecord class.
$with a list of relations that this query should be performed with

Public Methods

Method Description
asArray ( boolean $value = true ) Sets the [[asArray]] property.
findWith ( array $with, array | ActiveRecord[] &$models ) Finds records corresponding to one or multiple relations and populates them into the primary models.
with ( ) Specifies the relations with which this query should be performed.

Protected Methods

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

Private Methods

Method Description
normalizeRelations ( ActiveRecord $model, array $with ) : yii\db\ActiveQueryInterface[]

Method Details

asArray() public method

Sets the [[asArray]] property.
public asArray ( boolean $value = true )
$value boolean whether to return the query results in terms of arrays instead of Active Records.

createModels() protected method

Converts found rows into model instances
Since: 2.0.11
protected createModels ( array $rows ) : array | ActiveRecord[]
$rows array
return array | ActiveRecord[]

findWith() public method

Finds records corresponding to one or multiple relations and populates them into the primary models.
public findWith ( array $with, array | ActiveRecord[] &$models )
$with array a list of relations that this query should be performed with. Please refer to [[with()]] for details about specifying this parameter.
$models array | ActiveRecord[] the primary models (can be either AR instances or arrays)

with() public method

The parameters to this method can be either one or multiple strings, or a single array of relation names and the optional callbacks to customize the relations. A relation name can refer to a relation defined in [[modelClass]] or a sub-relation that stands for a relation of a related record. For example, orders.address means the address relation defined in the model class corresponding to the orders relation. The following are some usage examples: php find customers together with their orders and country Customer::find()->with('orders', 'country')->all(); find customers together with their orders and the orders' shipping address Customer::find()->with('orders.address')->all(); find customers together with their country and orders of status 1 Customer::find()->with([ 'orders' => function (\yii\db\ActiveQuery $query) { $query->andWhere('status = 1'); }, 'country', ])->all(); You can call with() multiple times. Each call will add relations to the existing ones. For example, the following two statements are equivalent: php Customer::find()->with('orders', 'country')->all(); Customer::find()->with('orders')->with('country')->all();
public with ( )

Property Details

$asArray public_oe property

whether to return each record as an array. If false (default), an object of [[modelClass]] will be created to represent each record.
public $asArray

$modelClass public_oe property

the name of the ActiveRecord class.
public $modelClass

$with public_oe property

a list of relations that this query should be performed with
public $with