У меня проблемы с сохранением параметров поиска при нажатии на ссылку для разбивки на страницы. Например, если поисковый запрос возвращает 40 записей, и у меня есть две страницы, щелчок на второй странице возвращает вторую страницу полного набора записей вместо 40, которые были возвращены поиском.Laravel pagination с параметрами поиска
Вот 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();
}
}
И мой getIndex()
:
public function getIndex(){
$items= $this->retriever->getListings(Input::old(), 20);
return View::make('listings', array('items' => $items);
}
Затем объект retriever
петли через старый вход и находит все действительные параметры поиска, запросов к базе данных с их, и в этом случае указывается указанная сумма, 20.
Я пытался использовать ->appends()
но данные не в Input::old()
и это делает для ужасном URL, если есть 10 параметров поиска, поскольку она использует GET
и не POST
. Как я могу использовать мои параметры для ссылок на страницы?
Вы также можете сохранить параметры поиска в своей базе данных и использовать только идентификатор поиска и страницу в URL-адресе. Больше работы, но чисто :) –
Да, это тоже решение. Таким образом, вы можете узнать, что ищут пользователи и т. Д. – Andreyco
Yup, это то, что я недавно сделал, так как я изначально делал это, как вы. Однако я не сохраняю поисковые запросы. Вероятно, это скоро произойдет. –