Ich versuche, eine polymorphe Assoziation zu erstellen, was in Rails aber leider nicht in Yii2 üblich ist. Im Rahmen der Umsetzung muß ich die Beziehung definieren:Wie zu verwenden Konstante in der ON-Bedingung in Yii2 hasMany Beziehung
public function getImages()
{
return $this->hasMany(RecipeImage::className(),
['imageable_id' => 'id', 'imageable_type' => 'Person']);
}
Aber das funktioniert nicht, weil ‚Person‘ als Attribut des aktuellen Modells behandelt wird, aber es ist eine Konstante (Klassenname für die polymorphe Assoziation).
Wenn ich versuche, 'andWhere' zu verwenden, fügt es natürlich die Bedingung in einer WHERE-Klausel anstelle der ON-Klausel hinzu, was dazu führt, dass nur Datensätze mit vorhandenem Bild zurückgegeben werden.
public function getImages()
{
return $this->hasMany(RecipeImage::className(), ['imageable_id' => 'id'])->
andWhere(['imageable_type' => 'Ingredient']);
}
Wie kann ich die Beziehung definieren? Es gibt keine andOn-Methode.
danke für den Link! – iGbanam