2016-05-11 24 views
1

Situation: In meinem Laravel Projekt. Unten sind die 4 Tabellen. movie_venue ist ein Pivot-Tabelle von Filme und Veranstaltungsorte. Ich muss die Spielzeiten mit dem Filmmodell aufrufen.Laravel Pivot Tabelle eloquent Beziehungen

$movie = $this->model->find($movie_id); 

$venues = $movie->venues; 

Mit eloquenten Beziehungen kann ich die Liste der Veranstaltungsorte zugreifen. Aber es ist nicht möglich, eine Beziehung zu erstellen, um Zeiträume vom Filmmodell zu erhalten.


| movies  | venues | movie_venue | showtimes  | 
----------------------------------------------------| 
| id   | id  | id   |id    | 
| name  | name | movie_id |movie_venue_id | 
| ....  | .... | venue_id |time   | 

Antwort

1

Ich nehme an, Sie eine für Venues-Showtimes One-to-many-Beziehung verwenden?

Sie könnten versuchen, so etwas wie:

foreach ($movies->venues as $venue) { 
    foreach ($venue->showtimes as $showtime) { 
     //do something with your showtime. 
    } 
} 

By the way: wäre es nicht sinnvoll, von den venue und als Zugang Showtimes zu beginnen?

UPDATE

Basierend auf Ihren Kommentar, können Sie so etwas wie dies versuchen:

$movie = Movie::find($id); 
$venues = $movie->venues; 

foreach ($venues->showtimes as $showtime) { 
    // Here you'll get the showtimes per venue. 
} 
+0

Ich benutze dies für eine mobile App als Web-Service wirklich. Wenn der Benutzer einen Film nach ID anfordert. Ich muss die Filmdetails mit den nächstgelegenen Veranstaltungsorten und den Showzeiten in jedem Veranstaltungsort senden. Die Tische Filme und Veranstaltungsorte haben Pivot-Tabelle namens movie_venue. Sein Primärschlüssel ist der Fremdschlüssel der Showtimes-Tabelle. Wie kann ich also eine Beziehung zwischen Film und Veranstaltungsort herstellen? Hoffe, das macht Sinn –

+0

Ich habe meine Antwort aktualisiert. – RW24

+0

Vielen Dank für Ihre Hilfe –

Verwandte Themen