J'utilise yii2, j'ai 3 tables: messages, fans, commentaires et je veux utiliser joinWith() pour obtenir les messages avec leurs commentaires et le nom du ventilateur (dans la table des fans) pour poster et commentaires. ce que je l'ai écrit est cette requête:utiliser Joins pour plusieurs tables dans yii2
<pre>
facebook_posts::find()->joinwith('fans')->joinWith('comments')->all();
</pre>
et j'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 du ventilateur qui a écrit le message et ses commentaires mais ce dont j'ai besoin, ce sont les données du fan qui a écrit les commentaires aussi, alors comment puis-je joindre des commentaires avec la table des fans ??
thank u :) il fonctionne très bien – ruba
Davey, et si vous vouliez utiliser une colonne de la table 'comments' ou peut-être la table 'fans' de la méthode where(), comment le feriez-vous? – Murilo
@Murilo comme suit: '-> où (['comments.field1' => 'value1']) -> all()' ou '-> où (['comments.fan.field1' => 'value1']) -> all() ' – deacs