【问题标题】:Laravel enable pagination for DB::raw queriesLaravel 为 DB::raw 查询启用分页
【发布时间】:2018-01-31 03:56:20
【问题描述】:

我有以下需要启用分页的原始查询。我应该实现手动分页还是可以使用内置分页方法?如果我可以使用内置的分页方法,请解释我如何才能完成,因为我尝试了几次都没有运气。

$sql = 'select t1.rownum, t2.rownum, t1.logged_on, t1.reading, (t1.reading - t2.reading) as diff
            from (
                select @rownum := @rownum + 1 AS rownum, date(t.logged_at) as logged_on, t.reading
                from parameter_log_tab t, (SELECT @rownum := 0) r
                where t.site_id = ?
                order by t.logged_at desc ) t1
            left join (
                select @rowno := @rowno + 1 AS rownum, date(t.logged_at) as logged_on, t.reading
                from parameter_log_tab t, (SELECT @rowno := 0) r
                where t.site_id = ?
                order by t.logged_at desc) t2
            on t1.rownum = t2.rownum - 1';
$result = DB::select($sql, [$site_id, $site_id]);

【问题讨论】:

  • 如果您有原始查询,您有责任实现自己的分页。使用占位符添加 LIMITOFFSET

标签: mysql pagination laravel-5.4


【解决方案1】:

您必须自己创建分页。可能你正在寻找这样的东西。

$collection = new Collection($put_your_array_here);

// Paginate
$perPage = 10; // Item per page
$currentPage = Input::get('page') - 1; // url.com/test?page=2
$pagedData = $collection->slice($currentPage * $perPage, $perPage)->all();
$collection= Paginator::make($pagedData, count($collection), $perPage);

这里是堆栈溢出链接: Laravel 5 Pagination with Query Builder

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2018-04-15
    • 2017-06-14
    • 2019-11-23
    • 1970-01-01
    • 2018-10-24
    • 2020-06-10
    相关资源
    最近更新 更多