Cần lưu ý rằng nếu bạn có các tham số truy vấn bổ sung trong URL của mình, thì không là một phần của tuyến đường được định cấu hình, câu trả lời được chấp nhận sẽ không bao gồm chúng trong URL (đường dẫn) hiện tại.
Tại sao bạn muốn có thêm thông số?
Ví dụ: nếu bạn có một trang danh sách với các bản ghi có thể được lọc theo từ khóa và trang có phân trang, rất có thể các biến truy vấn cho "từ khóa" và "trang" sẽ không nằm trong lộ trình của bạn. Nhưng trong các nút chuyển tiếp và quay lại để phân trang, bạn cần có URL hiện tại đầy đủ (có chứa các từ khóa để trang tiếp theo vẫn được lọc). Và bạn cần sửa đổi biến trang.
Cách hợp nhất trong các tham số truy vấn bổ sung
Vì vậy, bạn có thể có được tuyến đường hiện tại và hợp nhất trong các biến phụ (sau khi sửa đổi một hoặc nhiều biến phụ đó). Lưu ý rằng bạn đang hợp nhất các biến của riêng bạn với app.request.query.all
, và sau đó hợp nhất mảng đó vào app.request.attributes.get('_route_params')
. Các path()
phương pháp yêu cầu bạn cung cấp tất cả các thông số cần thiết của tuyến đường, đó là lý do tại sao bạn cần phải bao gồm _route_params
.
{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all|merge({'page': 2 }))) }}
Điều đó thực sự xấu xí, nhưng nếu bạn đang phát triển phân trang, bạn sẽ cần sửa đổi biến trang trên mỗi liên kết riêng biệt, vì vậy bạn phải bao gồm toàn bộ mỗi lần. Có lẽ những người khác có một giải pháp tốt hơn.