2016-06-09 9 views
-1

Hallo Leute Ich habe diesen Satz von Datenbank
Laravel 5 Abrufen von zugehörigen Daten unter Verwendung von 3-Modelle

clients(#id,raison_sociale,adresse,)<br> 
delivery(#id,client_id(fk),date_del) <br> 
details(delivery_id(fk),product_id(fk),qt) 
product(id,code,desig,price) 

und hier meine eloquent Beziehungen sind

class Client extends Model { 
    public function livraison(){ 
     return $this->hasMany('App\Models\Livraison'); } } 


class Detail extends Model 
     { 
    public function delivery(){ 
    return $this->belongsTo('App\Models\Delivery');}} 


class Livraison extends Model{ 
    public function client(){ 
    return $this->belongsTo('App\Models\Client'); 
    } 
public function detail(){ 
    return $this->hasMany('App\Models\detail'); }} 


  1. Habe ich etwas falsch mit diesen Beziehungen haben?
  2. Ich habe eine Seite, auf der ich alle meine Lieferung zeige, aber ich kann nicht die richtige Art finden, diese Zeile zu holen: raison_soc(from client) & date_del(from delivery); und Detailtabelle (für jeden Kunden natürlich)

Antwort

0
use App\Models\Client; 

Client::with('delivery.detail')->get(); 

Ich kann nicht Ihre Beziehungen testen, aber vorausgesetzt, Sie folgen den Namenskonventionen Ihre Beziehungen sollten in Ordnung sein. Das oben Genannte greift alle Details auf, die mit der Lieferung durch den Kunden verbunden sind.

Sie könnten Ihre Beziehung mit einem hasManyThrough Verfahren verbessern Has Many Through

Sie würden in Ihrem Client-Klasse so etwas tun:

public function details(){ 
    return $this->hasManyThrough('App\Models`Details', 'App\Models\Livarasion'); 
} 

Wenn Sie Ihren zweiten Punkt erklären deutlicher kann ich Ihnen helfen, diese einstellen . Bitte lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben

+0

Vielen Dank excojish, aber es gab nur die Client-Informationen was ich nicht erreichen kann ist, um die Lieferungen und die, die sie bestellt und die Details über sie, ich hoffe, ich bin klarer jetzt – Ayoub

+0

Ich habe eine DD zu den Ergebnissen Ich habe eine Sammlung über die Client-Informationen und es gibt auch eine Beziehung Array über die Lieferung (ich denke, es funktionierte, aber die Details waren nicht enthalten und ich weiß nicht, wie man sie zeigt) – Ayoub

+0

return $ this-> hasMany ('App \ Models \ detail'); }} Detail ist falsch, oder? Dein Klassenname ist Liravision, nein? Das sollte es beheben :) – ExohJosh

Verwandte Themen