Следует отметить, что если у вас есть дополнительные параметры запроса в вашем URL, которые не являются частью настроенного маршрута, принятый ответ не будет включать их в текущий URL (путь).
Зачем вам нужны дополнительные параметры?
Например, если у вас есть страница списка с записями, которые можно отфильтровать по ключевому слову, а страница имеет нумерацию страниц, скорее всего, переменные запроса для «ключевого слова» и «страницы» не будут присутствовать в вашем маршруте. Но в ваших кнопках «вперед» и «назад» для подкачки вам нужен полный текущий URL (который содержит ключевые слова, поэтому следующая страница по-прежнему фильтруется). И вам нужно изменить переменную страницы.
Как объединить дополнительные параметры запроса
Таким образом, вы можете получить текущий маршрут и объединить дополнительные переменные (после изменения одной или нескольких из этих дополнительных переменных). Обратите внимание, что вы объединяете свои собственные переменные с app.request.query.all
, а затем объединяете этот массив с app.request.attributes.get('_route_params')
. path()
Метод требует , чтобы вы предоставите все необходимые параметры маршрута, поэтому необходимо включать _route_params
.
{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all|merge({'page': 2 }))) }}
Это действительно ужасно, но если вы разрабатываете нумерацию страниц, вам нужно будет изменить переменную страницы в каждой отдельной ссылке, поэтому вам придется каждый раз включать все это. Возможно, у других есть лучшее решение.