我在laravel5.6 vuejs2应用程序中有三个表
我想创建像facebook这样的后端,我可以将所有最新帖子列为故事。在这种情况下,我想用加载更多按钮发布Feed,分类广告和新闻。怎么做到这一点?
$feed = Feed::latest()->paginate(10);
$classifieds = Classifieds::latest()->paginate(10);
$news = News::latest()->paginate(10);
$stories = array_merge(['feed', 'classifieds', 'news']);
这不起作用,我知道这不是正确的方法。我是laravel的学习者,并没有找到太多帮助。
有人能告诉我如何做到这一点,以便我可以将仪表板页面上与之无关的所有三个表列为最新故事。
答案 0 :(得分:4)
创建ModelCollection是很酷的方法。
$collection = new ModelCollection();
$feed = Feed::latest();
$classifieds = Classifieds::latest();
$news = News::latest();
$stories = $collection->merge($feed)->merge($classifieds)->merge($news);
编辑: 你可以做那样的分页。
$page = $request->get('page');
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$collection = new ModelCollection();
$feed = Feed::latest();
$classifieds = Classifieds::latest();
$news = News::latest();
$stories = $collection->merge($feed)->merge($classifieds)->merge($news);
$items = new LengthAwarePaginator($stories->forPage($page, 30), $result->count(), 30, $page,['path' => '/search']);
LengthAwarePaginator可以做到这一点,用法是
LengthAwarePaginator(currentPageItems, collection_count, perPage, currentPage)
我希望这是有帮助的。编辑部分无法工作,我只是告诉它,因为lengthawarepaginator可以给你一个想法。