vik*_*n19 1 php pagination laravel laravel-4
单击分页链接时,我无法保留搜索参数.例如,如果搜索查询返回40条记录并且我有两个页面,则单击第二页将返回完整记录集的第二页,而不是仅返回搜索返回的40条记录.
这是postIndex()我的控制器:
public function postIndex(){
$validator = Validator::make(
Input::all(),
array('priceMin' => array('numeric'),
'priceMax' => array('numeric')
)
);
if ($validator->fails()){
return Redirect::to('items')->withInput()->withErrors($validator);
} else {
return Redirect::to('items')->withInput();
}
}
Run Code Online (Sandbox Code Playgroud)
我的getIndex():
public function getIndex(){
$items= $this->retriever->getListings(Input::old(), 20);
return View::make('listings', array('items' => $items);
}
Run Code Online (Sandbox Code Playgroud)
然后,retriever对象循环遍历旧输入并查找所有有效的搜索参数,使用它们查询数据库,以及具有指定量的分页,在本例中为20.
我已经尝试使用,->appends()但随后数据不在,Input::old()如果有10个搜索参数,它会产生一个可怕的URL,因为它使用GET和不使用POST.如何将参数应用于分页链接?
我永远不会使用POST请求进行任何过滤/排序/搜索!这是错的
通常,如果用户尝试重新加载已发送某些数据(搜索参数)的页面(搜索结果页面),浏览器会询问是否应重新加载并重新发送该数据.我不能说,这至少令人讨厌.
解决方案:坚持使用Laravel方法并使用appends()尽管它生成"丑陋"的URL - 这是一个常见的解决方案,无论框架如何.