2016-05-04 126 views
3

我正在使用下面的查询laravel中的随机数行。数据表服务器端分页与laravel查询限制

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

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

我怎样才能实现这个使用上面的查询laravel与服务器端分页?

谢谢!

回答

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); 
} 
+0

因为我使用的数据表中的AJAX部分采用laravel和laravel使得使用$查询 - >使(真)这样的反应我怎么能使用此功能。 –

+0

过去模型的整个代码(如果有的话),控制器和路由,因为我不能告诉你你必须把它放在哪里。 –