Có lẽ tôi đang thiếu một cái gì đó nhưng có vẻ không phải là một cách để xác định các tham số chuỗi truy vấn trong các tuyến đường trong Symfony2 để chúng có thể được chuyển vào một bộ điều khiển.Symfony2: Cách chuyển thông số chuỗi truy vấn url vào bộ điều khiển?
Ví dụ, thay vì tạo ra một URI như /blog/my-blog-post
(từ Symfony2 của routing documentation) và đi qua nó để các tuyến đường sau:
# app/config/routing.yml
blog_show:
pattern: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
Tôi muốn tạo ra một URI như /blog?slug=my-blog-post
. Vấn đề là tôi không thể tìm thấy bất cứ nơi nào để xác định tham số slug
trong tệp cấu hình tuyến đường (như đối tác {slug} ở trên).
Có lẽ đây là mục đích nhưng sau đó thực hành tốt nhất để làm việc với các tham số GET trong chuỗi truy vấn là gì?
Tài liệu đề cập đến chúng trong Generating URLs with Query Strings, vậy làm thế nào để chuyển chúng vào bộ điều khiển?
đâu tôi có thể tìm thấy đề cập đến trong số họ là Symfony2 and HTTP Fundamentals:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
// retrieve GET variables
$request->query->get('foo');
Đây có phải là cách tốt để làm việc với họ bên trong bộ điều khiển?
Vì Symfony 2.4, phương thức 'getRequest()' không có w không được sử dụng và một nên sử dụng thủ thuật thứ hai, với tham số 'Request' trong phương thức điều khiển. Phương thức 'getRequest()' sẽ được gỡ bỏ trong Symfony 3. – Brewal
@Brewal: nhưng nếu bạn có một 'Controller' mở rộng' Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller' và nó đã nhận được các tham số như được định nghĩa trong route của nó, bạn vẫn có thể nhận được yêu cầu theo cách này hay bạn chỉ đơn giản là phải sử dụng 'Request :: createFromGlobals()' bây giờ? – fritzmg
Bạn vẫn có thể nhận được yêu cầu nhờ loại 'Request' được chỉ định ngay trước biến' $ request'. Symfony đủ thông minh để đoán điều đó. – Brewal