美好的一天,
我目前正在研究我的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();
}
我不知道在哪里放上代码。感谢/
答案 0 :(得分:1)
我看到两个解决方案。在快捷方式:
计算数据库中的所有记录,并将其拆分为records_per_page编号,并创建该数量的分页按钮。这是非常简单,常见的解决方案。
如果你想努力,由于某种原因,创建课程让我们说PaginationValidator,并注册自定义规则,如here
那么,如果分页超过一个或多个模型?如果更多 - &gt;使用Jeffrey Way的处理程序,如果不是在控制器构造函数`
中的过滤器之前放入此代码public function __construct()
{
$this->beforeFilter('PaginationValidator@pagination', array('only' =>
array('fooAction', 'barAction')));
}
在PaginationValidator获取查询中,dataBase中有多少条记录,并将其与请求的数字进行比较。很好,很顺利。祝你有愉快的一天!