È possibile impostare la condizione nella sezione join in viaTable? Attualmente ho ottenuto questo:Yii2 condizione di join viaTable
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]);
});
ma non è una buona soluzione. Perché? Quando si esegue un aggancio sinistro, la condizione id_role
lo renderà effettivamente inner join. La condizione id_role
deve essere inserita nella sezione ON
della join.
Stavo cercando sul web più ispezionando il codice ma non vedo come potrebbe essere risolto.
No. Vi dirà che non esiste un id di colonna o nessuna colonna 1 (se id è 1). Ho ricevuto la risposta di Qiang Xue, fondatore di Yii. Posterò la risposta – Joe
sì, sembra giusto. Ricordo che qualche tempo fa ho avuto un problema simile. L'ho risolto creando una relazione parametrica alla fine. –
Penso che questo possa essere facilmente risolto dividendo le condizioni e usando dopo l'istruzione viaTable -> onCondition (['id_role' => RoleHelper :: getConsultantRole() -> id]) – Salaros