Я пытаюсь создать полиморфную ассоциацию, которая распространена в 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.