没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Trait yii\db\ActiveQueryTrait

实现yii\db\ActiveQuery
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/db/ActiveQueryTrait.php

ActiveQueryTrait 实现了活动记录查询类的通用方法和属性。

公共属性

隐藏继承的属性

属性类型描述被定义在
$asArray boolean 是否将每个记录作为数组返回。如果为 false(默认值), 将创建 $modelClass 的对象来表示每个记录。 yii\db\ActiveQueryTrait
$modelClass string ActiveRecord 类的名称。 yii\db\ActiveQueryTrait
$with array 此查询应使用的关系列表。 yii\db\ActiveQueryTrait

公共方法

隐藏继承的方法

方法描述被定义在
asArray() 设置 asArray() 属性。 yii\db\ActiveQueryTrait
findWith() 查找对应于一个或多个关系的记录,并将它们填充到主模型中。 yii\db\ActiveQueryTrait
with() 指定应该执行此查询的关系。 yii\db\ActiveQueryTrait

受保护的方法

隐藏继承的方法

方法描述被定义在
createModels() 将找到的行转换为模型实例。 yii\db\ActiveQueryTrait

属性详情

$asArray 公共 属性

是否将每个记录作为数组返回。如果为 false(默认值), 将创建 $modelClass 的对象来表示每个记录。

public boolean $asArray null
$modelClass 公共 属性

ActiveRecord 类的名称。

public string $modelClass null
$with 公共 属性

此查询应使用的关系列表。

public array $with null

方法详情

asArray() 公共 方法

设置 asArray() 属性。

public $this asArray($value true)
$value boolean

是否按数组而不是活动记录返回查询结果。

return $this

查询对象本身

createModels() 受保护 方法 (自版本 2.0.11 可用)

将找到的行转换为模型实例。

protected array|yii\db\ActiveRecord[] createModels($rows)
$rows array
findWith() 公共 方法

查找对应于一个或多个关系的记录,并将它们填充到主模型中。

public void findWith($with, &$models)
$with array

这个查询应该使用的关系列表。 有关指定此参数的详细信息,请参考 with()

$models array|yii\db\ActiveRecord[]

主要模型(可以是 AR 实例或数组)。

with() 公共 方法

指定应该执行此查询的关系。

此方法的参数可以是一个或多个字符串, 也可以是单个关系名称数组和自定义关系的可选回调。

关系名称可以指在 $modelClass 中定义的关系或代表相关记录关系的子关系。 例如,orders.address 是指模型类中定义的对应于 orders 关系的 address 关系。

以下是一些用法示例:

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

你可以多次调用 with()。每次调用都将在现有基础上增加新的关系。 例如,以下两个语句是等效的:

Customer::find()->with('orders', 'country')->all();
Customer::find()->with('orders')->with('country')->all();
public $this with()
return $this

查询对象本身