2017-02-04 3 views
0

So hat mein Client Modell eine hasMany Beziehung mit dem Project Modell, weil jeder Client in der client Tabelle mit vielen Projekten in der projects Tabelle verbunden ist.Laravel Eloquent hat viele nur ein Ergebnis zurückgegeben?

Das Verfahren sieht wie folgt aus:

Client.php:

public function projects() 
{ 
    return $this->hasMany('App\Projects', 'id', 'project_id'); 
} 

Scheint ziemlich einfach. Aber wenn ich versuche, das von einem Controller:

$projects = Client::find(1)->projects()->get() 

erhalte ich nur ein einziges Ergebnis, das erste Ergebnis aus dem Modellprojekt, wann sollte es etwa ein halbes Dutzend sein. Dies passiert sogar, wenn ich die an find() gesendete Ganzzahl ändere.

So eloquent kehrt jedes Mal zur ersten Zeile der Projekttabelle zurück. Warum tut es das und/oder wie kann ich alle relevanten Ergebnisse erhalten?

Antwort

0

A hasMany (oder one-to-many) Beziehung wird in der Laravel Documentation als

A "one-to-many" -Beziehung Beziehungen zu definieren, verwendet wird, definiert, in dem ein einziges Modell eine beliebige Menge von anderen Modellen besitzt.

In diesem Fall bedeutet Many einfach eins oder mehrere.


Ich nehme an, dass jedes Projekt eine client_id Referenz hat. In diesem Fall, wenn Sie Ihre projects() Funktion

return $this->hasMany('App\Projects', 'client_id'); 

sollte für Sie arbeiten.

+0

Richtig, jeder Kunde hat viele Projekte. –

+0

Wie also würde ich alle übereinstimmenden Ergebnisse von einem einzelnen Modell zurückgeben? –

+0

@ ΓΓΓICK überprüfen Sie meine aktualisierte Antwort – Daniel