2016-09-07 1 views
0

Ich habe folgende Modelle:beredt. Wie Zugriff auf nicht verwandten Tisch zu bekommen

Shop_list

Shopping_list_item

Produkt

Wenn ich versuche, hasManyThrough zu verwenden (I absichtlich Fehler in 'shopping_list_idd', 'idd' gemacht, um Fehlermeldung anzuzeigen):

public function product() 
    { 
     return $this->hasManyThrough(Product::class, Shopping_list_item::class, 'shopping_list_idd', 'idd', 'product_id'); 
    } 

ich folgendes:

SQL: select * products, shopping_list_items.. shopping_list_idd von products innere Verbindung shopping_list_items auf shopping_list_items.id = products. idd wo shopping_list_items. shopping_list_idd ist null Grenze 1

Frage: wie shopping_list_items.id-shopping_list_items.product_id zu ändern, so dass ich richtig anschließen? Oder vielleicht hast du einen anderen Vorschlag, wie ich Zugang zu product Informationen von shop_list bekommen kann.

Zusätzliche Frage: Warum gibt es diesen Teil ist Nullgrenze 1 am Ende der Abfrage?

+0

Können Sie die relevanten Tabellendefinitionen freigeben? – Elias

Antwort

0

Dieses Problem hier gelöst wurde - Has many through many-to-many. Hier gibt es Beziehung Viele zu Vielen, so dass Sie nicht einfach hasManyThrough verwenden können.

0

Haben Sie versucht, Position zu wechseln 'id', 'product_id'-'product_id','id'

+0

Wenn ich es ändere ändert sich nicht die ID: SQL: Wählen Sie 'Produkte'. *,' Shopping_list_items'.shopping_list_idd' von 'Produkte' innere Join' shopping_list_items' auf 'shopping_list_items'.'id' =' Produkte' . 'product_id', wobei' shopping_list_items'.shopping_list_idd 'Nullgrenze 1 ist –

Verwandte Themen