有问题是否有人可以提供帮助。
我的查询包含一组参数并显示一些结果。
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);
答案 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);