Tal vez me esté faltando algo, pero no parece haber una manera de definir los parámetros de la cadena de consulta en las rutas en Symfony2 para que puedan pasarse a un controlador.Symfony2: ¿Cómo pasar los parámetros url querystring a los controladores?
Por ejemplo, en lugar de generar un URI como /blog/my-blog-post
(de Symfony2 de routing documentation) y que pasa a la siguiente ruta:
# app/config/routing.yml
blog_show:
pattern: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
yo preferiría para generar un URI como /blog?slug=my-blog-post
. El problema es que no puedo encontrar ningún lugar para definir el parámetro slug
en el archivo de configuración de ruta (como su contraparte {slug} anterior).
Quizás esto sea a propósito, pero ¿cuál es la mejor práctica para trabajar con parámetros GET en la cadena de consulta?
La documentación no hace mención de ellos en Generating URLs with Query Strings, entonces, ¿cómo pasarlos al controlador?
Dónde puedo encontrar mención de ellos es Symfony2 and HTTP Fundamentals:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
// retrieve GET variables
$request->query->get('foo');
¿Es esta la mejor práctica para trabajar con ellos dentro del controlador?
Desde Symfony 2.4, el método 'getRequest()' no es w deprecated y uno debe usar el segundo truco, con el parámetro 'Request' en el método del controlador. el método 'getRequest()' se eliminará en Symfony 3. – Brewal
@Brewal: pero si tiene un 'Controller' que amplía' Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller' y que ya obtiene los parámetros definidos en su ruta, ¿todavía puede obtener la Solicitud de esta manera o simplemente tiene que usar 'Request :: createFromGlobals()' ahora? – fritzmg
Aún puede obtener la solicitud gracias al tipo 'Solicitud' especificado justo antes de la variable' $ request'. Symfony es lo suficientemente inteligente como para adivinar eso. – Brewal