2017-01-03 3 views
0

Ich versuche herauszufinden, ob es eine Möglichkeit gibt, die Werte von zwei Spalten in einer Pivot-Tabelle, basierend auf einer eindeutigen inkrementieren ID, die ich gab jede Reihe.Laravel - Holen Sie Werte aus Pivot-Tabelle Spalte, mit Pivot-Tabellen eindeutige Zeile ID

Ich habe ein Jobmodell, ein Standortmodell und ein Anwendungsmodell.

Der Job und der Standort haben eine Viele-zu-viele-Beziehung mit einer Pivot-Tabelle "job_location". Die zwei Fremdschlüssel, die es enthält, sind job_id und location_id. Allerdings gab ich auch jeder Zeile eine eindeutige inkrementierende ID, jobloc_id.

Wenn ich nur die jobloc_id habe, wie kann ich die Werte der anderen zwei Spalten nachschlagen?

Rückgabe "Methode WherePivot existiert nicht", obwohl ich Referenzen von Menschen gesehen habe, die es verwenden. Alles, was ich habe, ist die jobloc_id, und ich versuche, die anderen zwei Werte auf der Grundlage dieser zu suchen, so dass ich den Job und die Position vollständig laden kann, um Attribute von ihnen zu ziehen.

Alle Zeiger würden sehr geschätzt werden. Dies ist in Laravel 5.3.

+0

Pivot-Tabellen sind nicht dazu gedacht, eine ID-Spalte zu haben. Sie versuchen wahrscheinlich, etwas zu tun, was Sie nicht tun sollten. – AntoineB

+0

In der Datenbank Theorie, Pivot-Tabellen haben keine ID-Spalten wie @AntoineB sagte, Stattdessen ist ihr Primärschlüssel die Kombination der beiden Relation Teilnehmer. Es gibt zwei seltsame Lösungen, die Sie verwenden können, erhöhen Sie die Beziehung zwischen Job & Location zu Entität und haben Sie zwei N-1-Beziehung, eine mit Job und die andere mit Standort. Oder einfach Larawel Query Builder verwenden –

+2

@AntoineB Es ist nichts falsch daran, eine eindeutige ID-Spalte auf einer Pivot-Tabelle zu haben. Es ist nicht erforderlich, aber es kann nützlich sein. Mehrere Guides, die ich durchlaufen habe, haben gesagt, dass sie immer noch eins hinzufügen. Ich versuche im Wesentlichen, die Kombination des Jobs <-> mit einer Nummer zu erreichen. – Octoxan

Antwort

0

Wenn Sie ID sind hinzugefügt Tisch zu schwenken (jobloc_id zum Beispiel), und Sie wollen Reihe von ID zu bekommen, nur Query Builder verwenden:

DB::table('job_location')->where('jobloc_id', 1)->first(); 

, dass der schnellste und einfachste Weg, das zu tun, wenn Sie haben Sie eine eindeutige Zeilen-ID in der Pivot-Tabelle.

+1

Versuchte dies und es funktionierte. Hat aber ein Modell nur für den Pivot-Tisch gemacht, und das gibt mir ein bisschen mehr Kontrolle. – Octoxan

Verwandte Themen