我想在 Laravel 上创建带有分页的 leftjoin。 如何使用 leftjoin 创建分页?
这是我的代码:
$news = News::leftJoin('categories','news.category_id', '=', 'categories.id')
->select('news.*' ,'categories.category')
->get()->sortByDesc('created_at');
以前,我使用 $news = News::paginate(10);
及其作品,但它没有 leftjoin。
这是我创建分页的 html 代码
{{$news->links('vendor.pagination.pagination')}}
最佳答案
分页函数应该在查询生成器对象上完成,而不是在 get()
返回的集合上完成。
$news = News::leftJoin('categories','news.category_id', '=', 'categories.id')
->select('news.*' ,'categories.category')
->paginate(10);
排序也是如此。当您调用 get()->sortByDesc() 时,您将获取一个 Collection,然后通过 PHP 对该集合进行排序。通常,您需要在查询构建器中使用 orderBy()
来对 SQL 进行排序。
$news = News::leftJoin('categories','news.category_id', '=', 'categories.id')
->select('news.*' ,'categories.category')
->orderBy('created_at', 'DESC')
->paginate(10);
关于php - Laravel 在 leftjoin 处分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40517379/