Следует отметить, что если в вашем 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 }))) }}
Это действительно ужасно, но еслиВы разрабатываете нумерацию страниц, вам нужно будет изменить переменную страницы для каждой отдельной ссылки, поэтому вам нужно каждый раз включать все это.Возможно, у других есть лучшее решение.