Я пытаюсь создать полиморфную ассоциацию, что распространено в Rails, но, к сожалению, не в Yii2. В рамках реализации мне нужно определить отношение:
public function getImages()
{
return $this->hasMany(RecipeImage::className(),
['imageable_id' => 'id', 'imageable_type' => 'Person']);
}
Но это не работает, потому что "Person" рассматривается как атрибут текущей модели, но это константа (имя класса для полиморфной ассоциации).
Если я попытаюсь использовать «andWhere», он, конечно, добавит условие в предложение WHERE вместо предложения ON, в результате чего будут возвращены только записи с существующим изображением.
public function getImages()
{
return $this->hasMany(RecipeImage::className(), ['imageable_id' => 'id'])->
andWhere(['imageable_type' => 'Ingredient']);
}
Как определить отношение? Метода andOn нет.