Lumen: obtenga el parámetro de URL en una vista Blade


81

Estoy tratando de obtener un parámetro de URL de un archivo de vista.

Tengo esta url:

http://locahost:8000/example?a=10

y un archivo de vista llamado example.blade.php.

Desde el controlador que puedo conseguir el parámetro acon $request->input('a').

¿Hay alguna forma de obtener dicho parámetro de la vista (sin tener que pasarlo del controlador a la vista)?


Puede acceder a la $_GET[]matriz, pero no recomendaría hacerlo. Debe pasarlo del controlador a la vista, no estoy seguro de por qué no querría hacerlo.
Tim Lewis

@TimLewis Evitaría pasarlo desde el controlador porque si tengo muchos parámetros podría ser molesto, y debería ser más rápido tener una forma de obtenerlo directamente desde la vista.
Andrea

Supongo que puede ser tedioso definir y pasar muchas variables del controlador a la vista, pero me aburriría con las malas prácticas cualquier día ...
Tim Lewis

Piense en la razón por la que no puede acceder a $ request directamente en la vista, también por qué acceder a $ _GET, $ _ POST, $ _ REQUEST directamente es una mala práctica
mvladk

@mvladk cierto, de hecho. Los marcos eliminan los datos potencialmente incorrectos de estas variables.
Bhargav Nanekalva

Respuestas:


107

Esto funciona bien:

{{ app('request')->input('a') }}

¿Dónde aestá el parámetro de URL?

Vea más aquí: http://blog.netgloo.com/2015/07/17/lumen-getting-current-url-parameter-within-a-blade-view/


esto devolverá todos los parámetrosapp('request')->request->all()
dav

cuál sería la forma si mi URL fuera como locahost: 8000 / example / 10 y quiero obtener el valor 10. @Andrea
Sajeeb Ahamed

@SajeebAhamed Es mejor que hagas esto como una nueva pregunta: stackoverflow.com/questions/ask
Andrea



21

Dada su URL:

http://locahost:8000/example?a=10

La mejor manera que he encontrado para obtener el valor de 'a' y mostrarlo en la página es usar lo siguiente:

{{ request()->get('a') }}

Sin embargo, si desea usarlo dentro de una declaración if, puede usar:

@if( request()->get('a') )
    <script>console.log('hello')</script>
@endif

¡Espero que ayude a alguien! :)


9

Esto funciona bien para mi:

{{ app('request')->input('a') }}

Ej: para obtener el parámetro de paginación en la vista de hoja:

{{ app('request')->input('page') }}


7

Puede exponer públicamente la Inputfachada a través de un alias en config/app.php:

'aliases' => [
    ...

    'Input' => Illuminate\Support\Facades\Input::class,
]

Y acceda a los $_GETvalores de los parámetros de la URL utilizando la fachada directamente dentro de la vista / plantilla de Blade:

{{ Input::get('a') }}

¿Lumen tiene carpeta / config?
Mahefa

6

Según los documentos oficiales de 5.8 :

La función request () devuelve la instancia de solicitud actual u obtiene un elemento de entrada:

$request = request();

$value = request('key', $default);

Docs



1

si usa route y pass paramater use este código en su archivo blade

{{dd(request()->route()->parameters)}}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.