Ich versuche, die hasManyThrough-Beziehung in Laravel 5.1 zu verwenden, aber die SQL-Abfrage verwendet nicht das entsprechende Präfix in jeder Verbindung für jedes verwendete Modell definiert. Ich habe 3 Modelle, von denen 2 die gleiche Verbindung verwenden und eine von ihnen eine andere verwendet. Der einzige Unterschied zwischen den Verbindungen ist das Präfix der Datenbank.Verschiedene DB-Verbindung für Modelle mit hasManyThrough-Beziehung in Laravel 5.1
- Modell A hat Verbindung A das Präfix A_ verwendet
- Modell B Verbindung B, das Präfix B_
- Modell C verwendet, hat Verbindung B, die Vorsilbe B_
Die Beziehung nutzt:
Innerhalb des Modells B:
public function relationshipWithA()
{
return $this->hasManyThrough(A::class, C::class, 'Cid', 'Aid');
}
Die endgültige Abfragelogik ist korrekt, verwendet jedoch anstelle des Präfix B_ für die verbundenen Tabellen das Präfix A_ für alle Tabellen in der Abfrage.
Ist das ein Fehler/Einschränkung von Laravel? Gibt es eine Lösung für dieses Problem oder muss ich manuell beitreten, um das zu erreichen, was ich möchte?
Laravel-Modelle werden nicht mit verschiedenen Verbindungen für Beziehungen arbeiten, weil eloquent verwendet SQL verbindet hinter den Kulissen und das wird nicht mit mehr als einer DB-Verbindung möglich sein – AfikDeri