如果它大于lastPage值laravel分页,则使用lastPage而不是页面值

时间:2015-11-03 05:27:30

标签: jquery laravel-4 pagination

美好的一天,

我目前正在研究我的ajax分页和它的工作正常,除了一件事。

如果page变量大于lastPage,则不会显示任何数据。

这是我的控制器

$transactions = DB::table('x_general_transactions')
    ->whereBetween('x_general_transactions.date_at', array($startDate,$endDate))
    ->paginate($per_page);

因为当我尝试设置page=100时,最后一页实际上只是10,它就不会显示任何内容。有没有办法如果我设置page=100它会检查lastPage值,那么lastPage是否更大page=lastPage

if ($transactions->getLastPage() < $page) {
            $page = $transactions->getLastPage();
    }

我不知道在哪里放上代码。感谢/

1 个答案:

答案 0 :(得分:1)

我看到两个解决方案。在快捷方式:

计算数据库中的所有记录,并将其拆分为records_per_page编号,并创建该数量的分页按钮。这是非常简单,常见的解决方案。

如果你想努力,由于某种原因,创建课程让我们说PaginationValidator,并注册自定义规则,如here

那么,如果分页超过一个或多个模型?如果更多 - &gt;使用Jeffrey Way的处理程序,如果不是在控制器构造函数`

中的过滤器之前放入此代码
public function __construct()
{

    $this->beforeFilter('PaginationValidator@pagination', array('only' =>
                        array('fooAction', 'barAction')));
}

在PaginationValidator获取查询中,dataBase中有多少条记录,并将其与请求的数字进行比较。很好,很顺利。祝你有愉快的一天!