He estado usando Silex por un día, y tengo la primera pregunta "estúpida". Si tengo:¿Cómo obtengo todos los parámetros GET en Silex?
$app->get('/cities/{city_id}.json', function(Request $request, $city_id) use($app) {
....
})
->bind('city')
->middleware($checkHash);
quiero conseguir todos los parámetros (city_id) incluido en el middleware:
$checkHash = function (Request $request) use ($app) {
// not loading city_id, just the parameter after the ?
$params = $request->query->all();
....
}
Así que, ¿cómo consigo city_id (tanto el nombre del parámetro y su valor) en el interior el middleware. Voy a tener 30 acciones, así que necesito algo utilizable y mantenible.
¿Qué me estoy perdiendo?
muchas gracias!
Solución
tenemos que conseguir esos parámetros extra de $ peticion- > Atributos
$checkHash = function (Request $request) use ($app) {
// GET params
$params = $request->query->all();
// Params which are on the PATH_INFO
foreach ($request->attributes as $key => $val)
{
// on the attributes ParamaterBag there are other parameters
// which start with a _parametername. We don't want them.
if (strpos($key, '_') != 0)
{
$params[ $key ] = $val;
}
}
// now we have all the parameters of the url on $params
...
});
que parece -> middleware() no existe más? – Tobias