Laravel 4分页链接空页

时间:2018-01-25 11:11:26

标签: php laravel laravel-4 pagination

我有一个返回数百个数据库记录的查询。

我正在尝试使用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()}}

对此有任何帮助吗?

2 个答案:

答案 0 :(得分:0)

我想您可能在第二页上看不到任何记录,这可能是因为未定义$ searchByColumn和$ searchKey,它们仅在第一页上定义,因为输入是作为表单的输入,但在其他页面上则没有您遵循基本的分页器链接。

要通过连续请求保留$ searchByColumn和$ searchKey的值,您可以将它们附加到分页程序生成的链接中,如下所示:

{{ $results->appends(
    array('searchByColumn' => $searchByColumn, 
    'searchKey ' => $searchKey ))->links() }}

调整代码以遵循参数名称,不要忘记将它们传递给视图。

答案 1 :(得分:0)

尝试类似class MyAppHome extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyApp(), ); } } class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { @override Widget build(BuildContext context) { return Scaffold( appBar: new AppBar( title: new Text("Web Issue finder"), actions: <Widget>[ new IconButton( icon: Icon(Icons.person), // tooltip: "Admin", onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (_) => AdminAuth()), ); }) ], ), body: new FutureBuilder( future: loadStates(), builder: (context, snapshot) { if (snapshot.hasData) { return new ListView.builder( itemBuilder: (context, index) { if (index >= snapshot?.data?.length ?? 0) return null; return new ListTile( title: new Text("${snapshot.data[index]}"), onTap: () { debugPrint("${snapshot.data[index]} clicked"); Navigator.push( context, MaterialPageRoute( builder: (context) => IssueAddScreen(state: snapshot.data[index]), ), ); }, ); }, ); } else { return new Center(child: new CircularProgressIndicator()); } })); } } 的方法来帮助您解决问题

compact

在执行 return View::make('search-view', compact('results')) ->with('results', $results); 时,您已经在视图中包括了要用作compact的{​​{1}} var,与使用$results的操作完全相同。因此,可以删除此最后一个。如果您想使用$results加载更多的变量,只需用逗号分隔变量名即可。