php - Laravel 在 leftjoin 处分页

标签 php laravel pagination left-join

我想在 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/

相关文章:

php - Laravel + Redis 通过 SSL 缓存?

php - 获取闪信 key

javascript - 来自 XML 文件问题的分页 jQuery 结果集

javascript - 下载 PDF 格式的 PHP、HTML 编码页面。

php - 如何从一个表中获取所有值,该表将自身作为同一个表中的另一个值邻居字段包含在内?

java - php 的 array_multisort 函数相当于 java 中的函数

php - HTML5分页

显示表中最后一行值的 PHP 数组

php - 与 Laravel faker 的嵌套关系 - laravel seeder

java - JSP 连续滚动 在 session 中存储页面变量