У меня есть модель
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']);
}
}
Мне нужно получить Проблемы для некоторых лекарств, которые связаны через culture_id и drug_id в таблице потребления.
Когда я использую andOnCondition
- я получаю сообщение об ошибке «Не уникальная таблица / псевдоним:« потребление_ »»
$drugs = Drug::find()
->joinWith(['consumptionRates' => function (ActiveQuery $query) use ($cultureId) {
return $query->andOnCondition(['consumption_rate.culture_id' => $cultureId]);
}])
->all();
Как мне построить запрос для получения нужного мне результата?