我有模特
class Drug extends ActiveRecord
{
/**
* @return \yii\db\ActiveQuery
*/
public function getProblems()
{
return $this->hasMany(Problem::class, ['id' => 'problem_id'])
->via('consumptionRateProblems');
}
/**
* @return \yii\db\ActiveQuery
*/
public function getConsumptionRateProblems()
{
return $this->hasMany(ConsumptionRateProblem::class, ['consumption_rate_id' => 'id'])
->via('consumptionRates');
}
/**
* @return \yii\db\ActiveQuery
*/
public function getConsumptionRates()
{
return $this->hasMany(ConsumptionRate::class, ['drug_id' => 'id']);
}
}
我需要获取某些药物的问题,这些药物通过consumptionRates表中的culture_id和drug_id连接。
[当我使用andOnCondition
时-我收到错误“非唯一表/别名:'consumption_rate'”
$drugs = Drug::find()
->joinWith(['consumptionRates' => function (ActiveQuery $query) use ($cultureId) {
return $query->andOnCondition(['consumption_rate.culture_id' => $cultureId]);
}])
->all();
我应该如何构建查询以获得所需的结果?
感谢Serghiy Leonenco!
$drugs = Drug::find()
->joinWith(['consumptionRates'])->andWhere(['consumption_rate.culture_id' => $cultureId])
->all();