我有一个返回数百个数据库记录的查询。
我正在尝试使用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()}}
对此有任何帮助吗?
答案 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
加载更多的变量,只需用逗号分隔变量名即可。