utilisez des Jointures de tables multiples dans yii2
Je suis en utilisant yii2, j'ai 3 tables: poteaux, fans, commentaires, et je veux utiliser joinWith() pour obtenir les postes avec leurs commentaires et le nom du ventilateur (ventilateurs de table) pour le post et les commentaires.
ce que j'ai écrit est cette requête:
<pre>
facebook_posts::find()->joinwith('fans')->joinWith('comments')->all();
</pre>
et j'ai ajouté ces deux fonctions pour les relations:
<pre>
public function getfans() {
return $this->hasOne(Fans::className(), ['id' => 'from_id'])->from(fans::tableName() . ' FBF');
}
public function getComments() {
return $this->hasMany(Comments::className(), ['parent_id' => 'id'])->from(comments::tableName() . ' FBC');
}
</pre>
cela me donne les messages et les données de l'amateur, qui a écrit le message et ses commentaires, mais ce dont j'ai besoin est les données de ventilateur qui a écrit les commentaires aussi, alors comment puis-je joindre des commentaires avec les fans de la table ??
OriginalL'auteur ruba | 2014-05-12
Vous devez vous connecter pour publier un commentaire.
Assurez-vous d'avoir un
fan
relation dans votreComments
du modèle, vous pouvez utiliser les méthodes suivantes pour obtenir tous les commentaires pour chaque poste et le ventilateur rapport pour chaque commentaire:Davey, que faire si vous voulez utiliser une colonne des "remarques" de la table ou peut-être les 'fans' de la table dans la méthode where (), comment le feriez-vous?
comme suit:
->where(['comments.field1'=>'value1'])->all()
ou->where(['comments.fan.field1'=>'value1'])->all()
Sauvé mon temps. A fonctionné comme prévu...
OriginalL'auteur davey