Lumen: pobierz parametr adresu URL w widoku Blade

84

Próbuję uzyskać parametr adresu URL z pliku widoku.

Mam ten adres URL:

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

i plik widoku o nazwie example.blade.php.

Ze sterownika mogę pobrać parametr za apomocą $request->input('a').

Czy jest sposób na pobranie takiego parametru z widoku (bez konieczności przekazywania go ze sterownika do widoku)?

Andrea
źródło
Możesz uzyskać dostęp do $_GET[]tablicy, ale nie polecałbym tego robić. Powinieneś przekazać to z kontrolera do widoku, nie wiesz, dlaczego nie chcesz.
Tim Lewis,
@TimLewis unikałbym przekazywania tego z kontrolera, ponieważ gdybym miał dużo parametrów, mogłoby to być irytujące, a szybszy powinien być sposób, aby uzyskać to bezpośrednio z widoku.
Andrea
Wydaje mi się, że definiowanie i przekazywanie wielu zmiennych z kontrolera do widoku może być żmudne, ale każdego dnia zabrałbym nudę z powodu złych praktyk ...
Tim Lewis
Zastanów się, dlaczego nie możesz uzyskać bezpośredniego dostępu do $ request, a także dlaczego bezpośredni dostęp do $ _GET, $ _ POST, $ _ REQUEST jest złą praktyką
mvladk
@mvladk prawda, właściwie. Struktury usuwają potencjalnie złe dane z tych zmiennych.
Bhargav Nanekalva

Odpowiedzi:

58

Najkrótszy sposób, z którego korzystałem

{{ Request::get('a') }}
Hai Nguyen
źródło
25

Biorąc pod uwagę Twój adres URL:

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

Najlepszym sposobem na uzyskanie wartości „a” i wyświetlenie jej na stronie jest użycie:

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

Jeśli jednak chcesz użyć go w instrukcji if, możesz użyć:

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

Mam nadzieję, że to komuś pomoże! :)

Brad Ahrens
źródło
24

Prostsze w Laravel 5.7 i 5.8

{{ Request()->parameter }}
Ecko Santoso
źródło
9

To działa dobrze dla mnie:

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

Przykład: aby uzyskać parametr paginacji w widoku bloku:

{{ app('request')->input('page') }}
Fred Sousa
źródło
8

Laravel 5.8

{{ request()->a }}
b00sted 'ślimak'
źródło
7

Możesz publicznie ujawnić Inputfasadę za pomocą aliasu w config/app.php:

'aliases' => [
    ...

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

I uzyskaj dostęp do $_GETwartości parametrów adresu URL , używając fasady bezpośrednio w widoku / szablonie Blade:

{{ Input::get('a') }}
Nik Sumeiko
źródło
Lumen ma folder / config?
Mahefa
7

Zgodnie z oficjalnymi dokumentami 5.8 :

Funkcja request () zwraca bieżącą instancję żądania lub uzyskuje element wejściowy:

$request = request();

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

Dokumenty

Maksim Ivanov
źródło
4

Laravel 5.6:

{{ Request::query('parameter') }}
Alexander Kim
źródło
1
Proszę dodać wyjaśnienie.
petezurich
1

jeśli używasz parametru route i pass, użyj tego kodu w pliku blade

{{dd(request()->route()->parameters)}}
RahmanRezaee
źródło
0

Zgodnie z oficjalną dokumentacją 8.x

Używamy pomocnika request

Funkcja żądania zwraca bieżącą instancję żądania lub uzyskuje wartość pola wejściowego z bieżącego żądania:

$request = request();

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

wartością żądania jest tablica, którą można po prostu pobrać za pomocą klucza wejściowego w następujący sposób

$id = request()->id; //for http://locahost:8000/example?id=10
Napster Scofield
źródło