我有3个表,类别,rss和rss项目。类别下有rsses列表,每个rs都有自己的feed。我想要实现的是通过发布每个Feed项的日期来命令它们。
要清楚,例如:
Category: dogs > 3x RSS assigned to dogs category > each RSS has 30 feed items.
每个Feed项都有pub_date。
我要做的是使用类别ID,获取所有Feed项并按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 Feed项的数组,以自己的RSS Feed排序,而不是批量列表。
相反,我希望获得1个数组或对象,所有Feed项在该数组中联合,并由pub_date排序。我的方法为每个rss feed提供了一系列数组,每个feed项都按自己排序,而不是全局排序。
答案 0 :(得分:1)
你能做的是,
$rsses = RSS::where('category_id', $categoryId)->pluck('id');
这将返回所有rsses的数组
然后开火,
RssFeed::whereIn('rss_id', $rsses)->orderBy('pub_date', 'asc')->get();
这应该可以为您提供批量数据。
试一试,它应该有用。