没有办法在on上为依赖添加条件,有这么一个模型:
class Parent extends ActiveRecord
{
public function getChild()
{
return $this->hasMany(Child::class, ['parent_id' => 'parent_id'])->alias('c');
}
}
我得到这样的数据:
$query = Parent::find()
->alias('p')
->distinct()
->joinWith([
'child c'
], true, 'inner join');
结果,请求看起来像这样:
select
p.*
from parent p
inner join child c
on c.parent_id = p.parent_id
问题是我不知道如何获得这样的请求:
select
p.*
from parent p
inner join child c
on c.parent_id = p.parent_id and c.is_disabled = false
ActiveQuery 文档解决了这个问题\ http://www.yiiframework.com/doc-2.0/yii-db-activequery.html#onCondition()-detail