2016-03-24 5 views
2

Ich erstelle einen einfachen Blog mit einer Liste von Beiträgen. Jeder Post hat mehrere Medien (Bilder, Videos usw.). Also habe ich drei Modelle: Post (ID, Titel, Artikel, Album_ID, etc.), Album (ID, Titel, Beschreibung, etc.) und Medien (ID, URL, Typ, etc.). Ein Beitrag kann ein Album haben und ein Album kann mehrere Medien haben.Was ist der beste Weg, um ein verschachteltes Array eines Modells in Laravel 4 zu senden?

, um die Seite mit der Liste der Beiträge zu generieren ich wie folgt codiert (BlogController):

public function generateList(){ 
     $posts = Post::where('subcategory_id','=','3')->orderBy('created_at', 'DESC')->paginate(30); 

     return View::make('main.informativos') 
      ->with('posts', $posts); 
    } 

Wie Sie heute sehen können, nur die Pfosten der Ansicht gesendet. Meine Frage ist: Was ist der beste Weg, um alle Medien von jedem Beitrag zu senden? Daran erinnern, dass es viele Beiträge gibt.

+0

Sie die Beziehungen richtig eingerichtet Unter der Annahme haben, können Sie gerne Last mit ihnen "mit" Post :: mit ('albums.media') -> where ('subcategory_id',‘ = ',' 3 ') -> orderBy (' created_at ',' DESC ') -> paginate (3 0); –

+0

Danke! Es funktioniert sehr gut. Ich habe Post :: with ('album.medias') -> wo (..) -> get(); Eine andere Frage, wie kann ich das erste Medium mit dem Wert von 'type =' jpg '' in dieser Abfrage auswählen? Daran erinnern, dass ein Post zu einem Album gehört, und das Album hat viele Medien. –

Antwort

3

die Fremdschlüssel angeben probarly in Modellen
Verwendung Beziehung Funktionen mit ‚foreignkey‘, ‚PrimaryKey‘
Verwendung mit Funktion in der Steuerung vor dem Zustand
Unternehmen sind auf Beziehungen Land-Funktionen auf Basis
Wieder haben Sie Zweifel .. überprüfen Laravel doc

public function index() 
{ 
    $Location = Location::with('Company', 'Country') 
     ->where('company_id', '=', $company_id) 
     ->get(); 
    return response()->json($Location, 200); 
}