Слід зазначити, що якщо у вашій 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 }))) }}
Це справді некрасиво, але якщо ви розробляєте сторінки, вам потрібно буде змінювати змінну сторінки на кожному окремому посиланні, тому вам доведеться щоразу включати все. Можливо, в інших є краще рішення.