Interface yii\db\ActiveQueryInterface
继承 | yii\db\QueryInterface |
---|---|
实现 | yii\db\ActiveQuery |
可用版本自 | 2.0 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/db/ActiveQueryInterface.php |
ActiveQueryInterface 定义了由活动记录查询类实现的通用接口。
这是用于返回活动记录的普通查询的方法,也是关系查询的方法。 其中查询表示两个活动记录类之间的关系, 并将仅返回已关联的记录。
实现此接口的类还应该使用 yii\db\ActiveQueryTrait 和 yii\db\ActiveRelationTrait。
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
addOrderBy() | Adds additional ORDER BY columns to the query. | yii\db\QueryInterface |
all() | Executes the query and returns all results as an array. | yii\db\QueryInterface |
andFilterWhere() | Adds an additional WHERE condition to the existing one ignoring empty parameters. | yii\db\QueryInterface |
andWhere() | Adds an additional WHERE condition to the existing one. | yii\db\QueryInterface |
asArray() | 设置 asArray() 属性。 | yii\db\ActiveQueryInterface |
count() | Returns the number of records. | yii\db\QueryInterface |
emulateExecution() | Sets whether to emulate query execution, preventing any interaction with data storage. | yii\db\QueryInterface |
exists() | Returns a value indicating whether the query result contains any row of data. | yii\db\QueryInterface |
filterWhere() | Sets the WHERE part of the query ignoring empty parameters. | yii\db\QueryInterface |
findFor() | 查找指定主记录的相关记录。 当以惰性方式访问活动记录的关系时,调用此方法。 | yii\db\ActiveQueryInterface |
indexBy() | 设置 indexBy() 属性。 | yii\db\ActiveQueryInterface |
limit() | Sets the LIMIT part of the query. | yii\db\QueryInterface |
offset() | Sets the OFFSET part of the query. | yii\db\QueryInterface |
one() | 执行查询并返回单行结果。 | yii\db\ActiveQueryInterface |
orFilterWhere() | Adds an additional WHERE condition to the existing one ignoring empty parameters. | yii\db\QueryInterface |
orWhere() | Adds an additional WHERE condition to the existing one. | yii\db\QueryInterface |
orderBy() | Sets the ORDER BY part of the query. | yii\db\QueryInterface |
via() | 指定与连接表相关联的关系,用于关系查询。 | yii\db\ActiveQueryInterface |
where() | Sets the WHERE part of the query. | yii\db\QueryInterface |
with() | 指定应执行此查询的关系。 | yii\db\ActiveQueryInterface |
方法详情
设置 asArray() 属性。
public abstract $this asArray($value = true) | ||
$value | boolean | 是否按数组而不是活动记录返回查询结果。 |
return | $this | 查询对象本身 |
---|
查找指定主记录的相关记录。 当以惰性方式访问活动记录的关系时,调用此方法。
public abstract mixed findFor($name, $model) | ||
$name | string | 关系名称 |
$model | yii\db\ActiveRecordInterface | 主模型 |
return | mixed | 混合的相关记录 |
---|
设置 indexBy() 属性。
public abstract $this indexBy($column) | ||
$column | string|callable | 查询结果中应被索引的列的名称。 也可以是基于给定行或模型数据返回索引值的可调用函数(例如匿名函数)。 可调用的签名应该是:
|
return | $this | 查询对象本身 |
---|
执行查询并返回单行结果。
public abstract yii\db\ActiveRecordInterface|array|null one($db = null) | ||
$db | yii\db\Connection | 用于创建数据库命令的数据库连接。
如果为 |
return | yii\db\ActiveRecordInterface|array|null | 查询结果的单行。取决于 asArray() 的设置,
查询结果可以是数组或活动记录对象。
如果查询没有结果将返回 |
---|
指定与连接表相关联的关系,用于关系查询。
public abstract $this via($relationName, callable $callable = null) | ||
$relationName | string | 关系名称。在关系的 primaryModel 中声明的关系。 |
$callable | callable | PHP 回调,用于自定义与连接表相关联的关系。
它的签名应该是 |
return | $this | 关系对象本身。 |
---|
指定应执行此查询的关系。
此方法的参数可以是一个或多个字符串, 也可以是关系名称的单个数组以及自定义关系的可选回调。
关系名称可以指在 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();
public abstract $this with() | ||
return | $this | 查询对象本身 |
---|