Yii2 viaTable condition de jointure
Est-il possible de mettre une condition dans la jointure de la section dans viaTable?
Actuellement j'ai obtenu ceci:
return $this->hasMany(User::className(), ['id' => 'id_user'])
->from(User::tableName())
->viaTable(RoomActiveUser::tableName(), ['id_room' => 'id'],
function($query) {
return $query->andWhere(['id_role' =>
RoleHelper::getConsultantRole()->id]);
});
Mais ce n'est pas une bonne solution. Pourquoi?
Quand tu fais une jointure gauche de la id_role
condition de faire une jointure interne en fait. Le id_role
condition doit être placé à l'intérieur de ON
section de la jointure.
J'étais à la recherche sur le web plus d'inspecter le code mais je ne vois pas comment il pourrait être résolu.
Vous devez vous connecter pour publier un commentaire.
J'ai eu la réponse de Qiang Xue -
$query->onCondition()
doit être utilisé pour ce dont j'ai besoin. Code de résultat:Avez-vous essayé de faire comme
Cela devrait créer un
JOIN X on 'id_room' = 'id' AND 'id_role' = '$ConsultantRole_id'