2016-03-24 8 views
2

投稿のリストを含む簡単なブログを作成しています。各投稿には複数のメディア(画像、動画など)があります。だから、Post(id、title、article、album_idなど)、Album(id、title、descriptionなど)とMedia(id、url、typeなど)の3つのモデルがあります。投稿はアルバムを持ち、アルバムは複数のメディアを持つことができます。次のように Laravel 4でモデルのネストされた配列を送信する最適な方法は何ですか?

は(BlogControllerを)私はコード化された記事のリストでページを生成するには:あなたが見ることができるように

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

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

は、今日の投稿のみがビューに送信されます。私の質問は、各投稿のすべてのメディアを送る最良の方法は何ですか?そこには多くの投稿があることを思い出してください。

+0

をご確認ください:ポスト::(「albums.media」)と - >(「subcategory_id」、」 = '、' 3 ') - > orderBy(' created_at '、' DESC ') - >ページネート(3 0)。 –

+0

ありがとう!それは細かく動作します。私はPost :: with( 'album.medias') - > where(..) - > get();を使いました。もう1つの質問は、このクエリで 'type =' jpg ''の値を持つ最初のメディアを選択する方法です。投稿は1つのアルバムに属し、アルバムには多数のメディアがあることを思い出してください。 –

答えて

3

probarly国の機能が関係アゲイン
に基づいている条件
会社は、あなたは間違いなく持っている場所の前に「のForeignKey」、「主キー」のコントローラで機能付き
使用したモデル
利用関係の機能をで外部キーを指定してください..あなたは熱心な負荷彼らは「で」使用することができ、あなたは関係が正しく設定されていると仮定しlaravelドキュメント

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