我有一个返回数百个数据库记录的查询。
因为我试图使用Laravel 4.2方法对其进行分页。链接显示,他们指示我search-view?page=1
等,但链接打开空白页,没有结果。只有第一页包含结果。
当我试图在没有分页的情况下显示这些结果时,页面永远不会结束,所以我需要对它进行分页。
控制器:
$results = $this->model->where($searchByColumn, '=', $searchKey)
->paginate(30);
return View::make('search-view')
->with('results', $results);
视图:
@foreach ($results as $result)
{{$result}} <br>
@endforeach
{{$results->links()}}
对此有何帮助?
我猜你在第二页上看不到任何记录可能是因为$ searchByColumn和$ searchKey没有定义,只是在第一页上定义,因为作为表格的输入而不是在其他页面上输入如果你按照基本的分页链接。
要通过连续请求保持$ searchByColumn和$ searchKey的值,您可以将它们附加到由分页器生成的链接,类似于:
{{ $results->appends(
array('searchByColumn' => $searchByColumn,
'searchKey ' => $searchKey ))->links() }}
调整代码以遵循参数的名称,不要忘记将它们传递给视图。
尝试像这样的compact
帮助您解决问题
return View::make('search-view', compact('results'))
->with('results', $results);
在做compact
时,你已经将$results
var包含在视图中用作$results
,与使用with('results', $results)
完全相同。所以最后这个可以删除。如果你想使用compact
加载更多变量,只需用逗号分隔变量名。