2016-09-04 3 views
0

Ich habe die Tabellen: Orders, Products, Products_images.Wie verbinde ich drei Tische in Laravel?

Ich brauche ll Aufträge zu bekommen, denn das tue ich:

$orders = Order::with("products")->where("user_id", Auth::guard('api')->user()->id)->orderBy('id')->get(); 

Wo with("products") ist Funktion in Modell Order

public function products() 
    { 

     return $this->hasOne("App\Product", "id", "product_id"); 
    } 

Also, ich habe zwei Tabelle verbunden. Auch ich brauche Verbindung mit Tabelle Products mit Tabelle Products_images in dieser Abfrage.

Wie kann ich das tun?

Antwort

1

eine product_images Funktion zum Artikel Modell

public function product_images() { return $this->hasMany("App\ProductImage");} 

ändern Fügen Sie die App \ Produktbild der oben Linie das Modell für Ihren Tisch zu reflektieren. Dann können Sie alle Produktimages, Aufzeichnungen zugreifen, indem Sie die folgenden, um Ihre Produkte gehört:

$orders = Order::with("products.product_images")->where("user_id", Auth::guard('api')->user()->id)->orderBy('id')->get(); 

Schauen Sie unter verschachtelt eifrig Laden auf diesen Link: https://laravel.com/docs/5.3/eloquent-relationships#eager-loading