2016-11-26 6 views
1

Ich habe zwei Tabellen: Reisen und Städte.Laravel-Tabelle zu nur zwei Elementen auf einer anderen Tabelle

Eine Reise sollte nur zwischen zwei Städten sein. (von "Stadt A" zu "Stadt B").

In Trips-Tabelle, legte ich 2 Fremdschlüssel (city_A und city_B) Verweis auf "ID" der Städte Tabelle.

Ich weiß nicht, wie man dies in Laravel entwerfen, um einen optimierten Code zu erhalten. Ich möchte wissen, welche Art von Beziehung zu verwenden (hasOne oder ordersToMany), und wie kann ich Städte Informationen von TripController abrufen.

+0

es ist eine manyTomany Beziehung als eine Stadt kann Teil vieler Reisen sein und Reisen können mehrere Städte haben so eine Pivot-Tabelle, die 2 Spalten Stadt ID und Trip-ID haben und verwenden Sie diese Tabelle, um die Abfragen zu verbinden. –

+0

öffentliche Funktion getCityA() { return $ this-> belongsToMany ('\ App \ City', 'city_trip', 'trip_id', 'city_A') -> withPivot ('city_B'); } – Naco

Antwort

1

Sie sollten belongsToMany() (viele zu viele) mit zusätzlichen Pivot-Spalten hier verwenden. withPivot() Methode wird Ihnen helfen.

Sie möchten vielleicht über und eager loading lesen.

Verwandte Themen