【问题标题】:Data-table server-side pagination with laravel query limit具有 laravel 查询限制的数据表服务器端分页
【发布时间】:2016-08-29 09:34:06
【问题描述】:

我正在使用以下查询来获取 laravel 中的随机行数。

Select * from table order by rand() limit 0,1000

我的数据表分页大小为 100,但是当我在查询中使用限制时分页无法正常工作。

如何在 laravel 中使用上述查询和服务器端分页来实现这一点?

谢谢!

【问题讨论】:

    标签: php laravel-4 datatable server-side


    【解决方案1】:

    你应该在查询结果后尝试进行分页,因为 Laravel 会自动添加限制。将以下代码添加到您的模型中:

    public function getPaginatorResults($pagination) {
        $total = $this->getTotal();
        $query = $this->orderByRaw('rand()')
                      ->skip($pagination * (\Paginator::getCurrentPage() - 1))
                      ->take($pagination);
        $results = $query->get();
    
        return \Paginator::make($results->all(), $total, $pagination);
    }
    

    【讨论】:

    • 我如何使用这个功能,因为我正在使用 laravel 使用数据表 ajax 部分,而 laravel 使用 $query->make(true) 这样的方式做出响应。
    • 过去模型(如果有)、控制器和路由的整个代码,因为我不能告诉你你必须把它放在哪里。
    猜你喜欢
    • 2016-01-05
    • 1970-01-01
    • 2018-06-19
    • 2019-04-16
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2016-05-02
    • 2016-10-21
    相关资源
    最近更新 更多