2017-04-05 2 views
1

Ich habe 3 Modelle mit dem Namen "User", "Order", "Orders_products". Die Beziehungen sind folgende:Abfrage für relationales Modell in Laravel 5.3

  1. Benutzer hat viele Bestellen
  2. Bestellen Sie hat viele Orders_products

Hier sind der Code des Modells

Benutzermodell

public function order(){ 
     return $this->hasMany('App\Order'); 
    } 

Sortierung Modell

public function order_product(){ 
     return $this-> hasMany('App\Orders_product'); 
    } 
    public function user(){ 
     return $this-> belongsTo('App\User'); 
    } 

Orders_products Modell

public function order(){ 
     return $this->belongsTo('App\Order'); 
    } 

Ein Benutzer kann mehrere Aufträge haben und alle Aufträge mehrere bestellten Produkte haben könnten. Wie kann ich einen bestimmten Benutzer alle Bestellungen zusammen mit den bestellten Produkten erhalten.

Antwort

-1
$Order = Order::with('order_product')->where(['user_id'=>$id])->get(); 

wo $id die diese gibt ein leeres Objekt user_id

0

User-Modell

public function order() 
{ 
    return $this->hasMany(Order::class); 
} 

Sortierung Modell

public function user() 
{ 
    return $this->hasOne(User::class); 
} 

public function orders_products() 
{ 
    return $this->belongsToMany(Orders_products::class); 
} 

Orders_products

public function order() 
{ 
    return $this->belongsToMany(Order::class); 
} 
0

Dies sollte funktionieren, $ userid ist, wie auch immer Sie die Benutzer-ID in Ihrer Anwendung angeben.

User::with('order_product.order')->where('id', $usersid)->get(); 
+0

ist. –

+0

$ Order = Order :: mit ('order_product') -> wo (['user_id' => $ id]) -> get(); Das hat für mich funktioniert. Vielen Dank für Ihre Bewertung @ATechGuy –

+0

Als Antwort markieren bitte – ATechGuy

Verwandte Themen