首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合三个无关的表并在单个页面上显示结果

组合三个无关的表并在单个页面上显示结果
EN

Stack Overflow用户
提问于 2018-06-11 07:15:42
回答 1查看 417关注 0票数 1

我在laravel5.6 vuejs2应用程序中有三个表

  1. 提要(id、message、created_at、updated_at、created_by、updated_by)
  2. 分类(id,category_id,标题,描述,关键词,created_at,updated_at,created_by,updated_by)
  3. 新闻(id、标题、副标题、内容、关键词、created_at、created_by、updated_at、updated_by)。

我想要创建一个像facebook这样的后端,在那里我可以将所有最新的帖子作为故事列出。在这种情况下,我想张贴饲料,分类和新闻加载更多的按钮。如何做到这一点?

代码语言:javascript
复制
$feed = Feed::latest()->paginate(10);
$classifieds = Classifieds::latest()->paginate(10);
$news = News::latest()->paginate(10);

$stories = array_merge(['feed', 'classifieds', 'news']);

这不管用,我知道这不是正确的方法。我是个学拉拉的学生,在这方面找不到多少帮助。

有人能告诉我如何做到这一点吗?这样我就可以把仪表板页面上不相关的所有三个表都列为最新的故事了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-11 07:29:29

创建ModelCollection是很酷的方法。

代码语言:javascript
复制
$collection = new ModelCollection();

$feed = Feed::latest();
$classifieds = Classifieds::latest();
$news = News::latest();

$stories = $collection->merge($feed)->merge($classifieds)->merge($news);

编辑:你可以做这样的分页工作。

代码语言:javascript
复制
$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)

希望能帮上忙。编辑部分不能工作,我只是告诉它,因为加长分页器可以给你一个想法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50792242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档