Sto tentando di utilizzare la relazione hasManyThrough in laravel 5.1 ma la query sql non utilizza il prefisso appropriato definito in ciascuna connessione per ogni modello utilizzato. Ho 3 modelli 2 dei quali usano la stessa connessione e uno di loro ne usa uno diverso. L'unica differenza tra le connessioni è il prefisso che il database è lo stesso.Connessione DB diversa per i modelli che utilizzano la relazione hasManyThrough in laravel 5.1
- Model A ha connessione A che utilizza prefisso A_
- modello B ha connessione B che utilizza prefisso B_
- Modello C trovi connessione B che utilizza prefisso B_
La relazione:
interno modello B:
public function relationshipWithA()
{
return $this->hasManyThrough(A::class, C::class, 'Cid', 'Aid');
}
La logica di query finale è corretta ma invece di utilizzare il prefisso B_ per le tabelle unite viene utilizzato il prefisso A_ per tutte le tabelle nella query.
Si tratta di un bug/limitazione di laravel? C'è una soluzione a questo o dovrò fare il join manuale per ottenere ciò che voglio?
I modelli laravel non funzionano con connessioni diverse per le relazioni perché eloquente utilizza join SQL dietro le quinte e ciò non sarà possibile con più di una connessione DB – AfikDeri