Yii 2 可以从模型重写 WHERE 条件吗?
Yii 2 can rewrite WHERE condition from model?
我的模型中有一些 where 条件。
它的检查是否有效。
现在我需要写一个连接关系。但我需要删除 where 条件。可能吗?
我的模型。
...
public static function find() {
return (new AssetgroupsQuery(get_called_class()))->active();
}
我的亲戚
public function getAssetgroup(): \app\models\AssetgroupsQuery {
return $this->hasOne(Assetgroups::class, ['asg_id' => 'ass_group'])->andOnCondition(['asg_active' => '1'])
->viaTable('assets', ['ass_id' => 'log_ass_id',]);
}
我需要获取所有活动资产并加入,如果资产为空我需要获取空字段,但是
模型条件添加到我当前的 sql 查询并删除所有资产为空的字段。
我尝试添加一些 where 条件来删除旧的 where,但它不起作用。
你能帮帮我吗?
您可以使用 where(null)
重置现有条件。
在关系层面上:
public function getAssetgroup(): \app\models\AssetgroupsQuery {
return $this->hasOne(Assetgroups::class, ['asg_id' => 'ass_group'])
->andOnCondition(['asg_active' => '1'])
->where(null)
->viaTable('assets', ['ass_id' => 'log_ass_id',]);
}
或直接加入:
$query = MyModel::find()
->joinWith([
'assetgroup' => function (ActiveQuery $query) {
$query->where(null);
},
])
我的模型中有一些 where 条件。 它的检查是否有效。
现在我需要写一个连接关系。但我需要删除 where 条件。可能吗?
我的模型。
...
public static function find() {
return (new AssetgroupsQuery(get_called_class()))->active();
}
我的亲戚
public function getAssetgroup(): \app\models\AssetgroupsQuery {
return $this->hasOne(Assetgroups::class, ['asg_id' => 'ass_group'])->andOnCondition(['asg_active' => '1'])
->viaTable('assets', ['ass_id' => 'log_ass_id',]);
}
我需要获取所有活动资产并加入,如果资产为空我需要获取空字段,但是 模型条件添加到我当前的 sql 查询并删除所有资产为空的字段。 我尝试添加一些 where 条件来删除旧的 where,但它不起作用。
你能帮帮我吗?
您可以使用 where(null)
重置现有条件。
在关系层面上:
public function getAssetgroup(): \app\models\AssetgroupsQuery {
return $this->hasOne(Assetgroups::class, ['asg_id' => 'ass_group'])
->andOnCondition(['asg_active' => '1'])
->where(null)
->viaTable('assets', ['ass_id' => 'log_ass_id',]);
}
或直接加入:
$query = MyModel::find()
->joinWith([
'assetgroup' => function (ActiveQuery $query) {
$query->where(null);
},
])