2017-02-16 6 views
1

私は3つのテーブル、カテゴリ、rss、およびrssアイテムを持っています。カテゴリにはrssesのリストがあり、各rssには独自のフィードがあります。私が達成しようとしているのは、各フィード項目の公開日によって注文することです。複数の優雅なモデルを注文する

明確にするため、例:

Category: dogs > 3x RSS assigned to dogs category > each RSS has 30 feed items. 

また、各フィードアイテムは、そのPUB_DATEを持っています。


私がしようとしているのは、カテゴリIDを使用して、すべてのフィードアイテムを取得し、それらをpub_dateで注文することです。私が試した何

$categoryId = Category::where('name', $category)->first()->id; 
$rsses = RSS::where('category_id', $categoryId)->get(); 

// rsses is now a collection of each RSS arrays. 

、私はPUB_DATE順feedItemsを取得したいです。私はforloopを使用してみました:

$rssItems = []; 

foreach ($rsses as $rss) { 
    array_push($rssItems, RssFeed::where('rss_id', $rss->id)->orderBy('pub_date', 'asc')->get()); 
} 

これは私に、各RSSフィード独自のRSSフィードに注文した商品、およびないバルクリストの配列を与えます。

代わりに、1つの配列またはオブジェクトを取得したいと考えています。すべてのフィード項目がその配列で結合され、pub_dateによって順序付けされています。私のメソッドは、私に各RSSフィードの配列の配列をもたらし、各フィード項目はそれ自身で順序付けされ、グローバルには順序付けられません。あなたは何ができるか

答えて

1

が、これはこれはあなたに大量のデータを与える必要がありますあなたのすべてのrsses

そして火災、

RssFeed::whereIn('rss_id', $rsses)->orderBy('pub_date', 'asc')->get(); 

の配列を返します、

$rsses = RSS::where('category_id', $categoryId)->pluck('id'); 

です。

試してみるとうまくいくはずです。

+0

ありがとう、たくさんの男!チャームのような作品! – senty

関連する問題