the_tags tag name get_the_tags get_the_tag_list first all php symfony silex

php - name - the_tags wordpress



¿Cómo obtengo todos los parámetros GET en Silex? (1)

En el objeto Request tiene acceso a múltiples bolsas de parámetros, en particular:

  • $request->query - los parámetros GET
  • $request->request - los parámetros POST
  • $request->attributes - los atributos de solicitud (incluye parámetros analizados desde PATH_INFO)

$request->query contiene solo parámetros GET. city_id no es un parámetro GET. Es un atributo analizado desde PATH_INFO.

Silex usa varios componentes de Symfony . Las clases de solicitud y respuesta son parte de HttpFoundation. Obtenga más información al respecto en los documentos de Symfony:

He estado usando Silex por un día, y tengo la primera pregunta "estúpida". Si tengo:

$app->get(''/cities/{city_id}.json'', function(Request $request, $city_id) use($app) { .... }) ->bind(''city'') ->middleware($checkHash);

Quiero obtener todos los parámetros (city_id) incluidos en el middleware:

$checkHash = function (Request $request) use ($app) { // not loading city_id, just the parameter after the ? $params = $request->query->all(); .... }

Entonces, ¿cómo obtengo city_id (tanto el nombre del parámetro como su valor) dentro del middleware? Voy a tener 30 acciones, así que necesito algo utilizable y mantenible.

¿Qué me estoy perdiendo?

¡muchas gracias!

Solución

Necesitamos obtener esos parámetros adicionales de los atributos $ request->

$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 ... });