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


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:


110

To działa dobrze:

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

Gdzie ajest parametr url.

Zobacz więcej tutaj: http://blog.netgloo.com/2015/07/17/lumen-getting-current-url-parameter-within-a-blade-view/


to zwróci wszystkie parametryapp('request')->request->all()
dav

co by było, gdyby mój adres URL wyglądał jak locahost: 8000 / example / 10 i chcę uzyskać wartość 10. @Andrea
Sajeeb Ahamed

@SajeebAhamed Lepiej zadaj to jako nowe pytanie: stackoverflow.com/questions/ask
Andrea


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! :)



9

To działa dobrze dla mnie:

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

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

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


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') }}

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



1

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

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.