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)?

Andrea
fuente
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/

Andrea
fuente
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
57

La forma más corta que he usado

{{ Request::get('a') }}
Hai Nguyen
fuente
23

Más simple en Laravel 5.7 y 5.8

{{ Request()->parameter }}
Ecko Santoso
fuente
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! :)

Brad Ahrens
fuente
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') }}
Fred Sousa
fuente
8

Laravel 5.8

{{ request()->a }}
b00sted 'caracol'
fuente
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') }}
Nik Sumeiko
fuente
¿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

Maksim Ivanov
fuente
4

Laravel 5.6:

{{ Request::query('parameter') }}
Alexander Kim
fuente
1
Por favor agregue alguna explicación.
petezurich
1

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

{{dd(request()->route()->parameters)}}
RahmanRezaee
fuente