ActiveQueryTrait
API reference › yii › db › ActiveQueryTrait
Used by 1 type
ActiveQueryTrait implements the common methods and properties for active record query classes.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$asArray | bool | Whether to return each record as an array. Default: null. | ActiveQueryTrait |
$modelClass | class-string<ActiveRecordInterface> | The name of the ActiveRecord class. Default: null. | ActiveQueryTrait |
$with | array| | A list of relations that this query should be performed with Default: null. | ActiveQueryTrait |
Methods
Section titled “Methods”| Method | Description | Defined by |
|---|---|---|
asArray() | Sets the asArray() property. | ActiveQueryTrait |
findWith() | Finds records corresponding to one or multiple relations and populates them into the primary models. | ActiveQueryTrait |
with() | Specifies the relations with which this query should be performed. | ActiveQueryTrait |
createModels() protected | Converts found rows into model instances. | ActiveQueryTrait |
Property details
Section titled “Property details”$asArray
Section titled “$asArray ”public bool $asArray = nullWhether to return each record as an array.
If false (default), an object
of $modelClass will be created to represent each record.
Method details
Section titled “Method details”asArray()
Section titled “asArray() ”public function asArray(bool $value = true): $thisSets the asArray() property.
Parameters
| Parameter | Type | Description |
|---|---|---|
$value | bool | Whether to return the query results in terms of arrays instead of Active Records. |
Returns
$this: The query object itself
findWith()
Section titled “findWith() ”public function findWith(array $with, array &$models): mixedFinds records corresponding to one or multiple relations and populates them into the primary models.
Parameters
| Parameter | Type | Description |
|---|---|---|
$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 | The primary models (can be either AR instances or arrays) |
Returns
mixed
with()
Section titled “with() ”public function with(): $thisSpecifies the relations with which this query should be performed.
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:
// find customers together with their orders and countryCustomer::find()->with('orders', 'country')->all();// find customers together with their orders and the orders' shipping addressCustomer::find()->with('orders.address')->all();// find customers together with their country and orders of status 1Customer::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:
Customer::find()->with('orders', 'country')->all();Customer::find()->with('orders')->with('country')->all();Returns
$this: The query object itself
createModels()
Section titled “createModels() ”protected function createModels(array $rows, yii\db\Connection|null $db = null): array|yii\db\BaseActiveRecord[]Converts found rows into model instances.
Parameters
| Parameter | Type | Description |
|---|---|---|
$rows | array | The rows to be converted into model instances. Each array element represents a row of data. |
$db | Connection| | The database connection used to retrieve the rows. |
Returns
array|BaseActiveRecord[]: The model instances created from the rows. If asArray() is true, the rows will be returned as is.
Since
2.0.11