У меня есть другие поисковые запросы, такие как запрос от поиска, из тегов и т. Д. c. Я не хочу их менять. Значение pageno будет использоваться для нумерации страниц.
Поэтому я хочу изменить 'pageno', не меняя и не снимая другие.
Вот что я сделал в Twig:
<a href=?{{ request.server.get('QUERY_STRING')|replace({"&pageno=" : ""}) }}&pageno={{ page }}>{{ page }}</a>
Но это дает такой результат:? Query = & from-date = & to-date = & search = search413 & pageno = 5
Сбор прежних номеров страниц "413" при переходе от страницы к странице, и это всегда добавляет «&».
Другой метод, который я попробовал, состоит в том, чтобы создать строку в php и передать ее в шаблон Twig:
$queryStr = $request->server->get('QUERY_STRING');
$queryStr = preg_replace("/pageno=\\w+/", "", $queryStr); // Remove pageno=???
$queryStr = $queryStr == "" ? "" : ($queryStr . "&"); // ad a & if there's already other $_GET values
$queryStr = str_replace("&&","&", $queryStr); // replace && so it doesn't look bad
В Twig:
<a href=?{{ queryStr }}pageno={{ page }}>{{ page }}</a>
Это выглядит слишком сложно, слишком много проделанной работы, и я передаю множество значений Twig.
Есть ли более простой способ сделать это без необходимости передавать так много значений в Twig?