查询生成器中的Laravel-4分页,带有表单输入

时间:2014-12-29 17:02:33

标签: laravel query-builder

有问题是否有人可以提供帮助。

我的查询包含一组参数并显示一些结果。

DB::table()
  ->join()
  ->where()
  ->orderby()
  ->select()
  ->get();

但是视图中的表单输入会生成轮廓。基本上这是一堆过滤器来获得结果表。我想要分页。如果我将get()更改为paginate(),并在模板中调用$ result-> links(),它会对paginate进行修改,并为我生成一堆结果,但问题是当你离开页面时1,链接只是一个_GET参数,并且不会应用所有过滤器输入。

有没有办法可以让分页和过滤器同时进行?什么是laravel处理方式?或者我是否必须构建一些处理过滤器和页面的方法?有关于此的任何提示吗?

干杯!

*解决方案* 解决方案是使表单使用GET方法并使用 - > appends()方法将旧过滤器保留到分页。如果其他人正在寻找,下面是修改后的代码。

$results = $query->paginate($this->report->inputs->per_page);
$query = array_except( Input::query(), Paginator::getPageName() );
$results->appends($query);

1 个答案:

答案 0 :(得分:0)

是的,我就是这样做的:

$orderBy = Input::get('orderBy', 'created_at');
$order   = Input::get('order', 'DESC');
$limit   = Input::get('limit', 100);
$name    = Input::get('name', '');

$result = DB::table()
    ->where('name', 'LIKE', '%' . $name . '%')
    ->orderBy($orderBy, $order)
    ->paginate($limit);