2017-11-21 3 views
1

Ich habe die folgende Abfrage, die alle Stationen bezogenen Tabellen abruft, Tabelle estacion (Station) hat insgesamt 55 Datensätze. Mit dem folgenden Code kann ich nur Datensätze abrufen, die nur Daten enthalten, die nur mit anderen Tabellen in Beziehung stehen. Ob eine Station Daten hat oder nicht, ich muss auch alle 55 Stationen anzeigen. Ich habe query Buider mit leftJoin versucht, aber die Abfrage ist zu groß im Vergleich zu Eloquent.wie alle Stationen aus einer Abfrage mit vielen verwandten Tabellen mit Laravel Eloquent abgerufen werden?

$ficha = Estacion::select('estacion.*') 
         ->with('titular') 
         ->with('operador') 
         ->with('estacionestado') 
         ->with('comuna') 
         ->with('eqestacion') 
         ->with('equipos.parametros') 
         ->where('estacion.id',$value) 
         ->get();  

was ich jetzt bekomme. enter image description here

+1

Schreiben Sie niemals andere Sprachen im Backend außer Englisch. Was ein Frontend-Benutzer nicht sehen kann, sollte immer auf Englisch sein. Gründe: 1. Andere Leute können an diesem Projekt arbeiten. 2. Es ist einfacher, Hilfe von anderen zu bekommen. – lewis4u

Antwort

0

Dort gehen Sie:

$ficha = Estacion::with('titular', 
         'operador', 
         'estacionestado', 
         'comuna', 
         'eqestacion', 
         'equipos.parametros') 
         ->where('id',$value) 
         ->get(); 

Dadurch werden alle Stationen mit zugehörigen Daten geben. Wo estacion.id/id gleich $value

Wenn dies nicht funktioniert, werden Sie auch auf falsch $value vergleichen, sonst sind Ihre Beziehungen nicht richtig eingerichtet.

+0

Es gibt genau die gleichen Daten zurück, 1 Station plus die zugehörigen Tabellendaten, die meisten Stationen haben keine Daten in Titular oder Operador für jetzt. –

+0

@RodrigoCabrera Das ist egal, es wird immer alle Stationen zurückgeben, auch wenn die Beziehungsdaten leer sind. –

Verwandte Themen