Lumen: URL-Parameter in einer Blade-Ansicht abrufen

80

Ich versuche, einen URL-Parameter aus einer Ansichtsdatei abzurufen.

Ich habe diese URL:

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

und eine Ansichtsdatei mit dem Namen example.blade.php.

Von der Steuerung kann ich den Parameter amit abrufen $request->input('a').

Gibt es eine Möglichkeit, einen solchen Parameter aus der Ansicht abzurufen (ohne ihn von der Steuerung an die Ansicht übergeben zu müssen)?

Andrea
quelle
Sie könnten auf das $_GET[]Array zugreifen , aber ich würde das nicht empfehlen. Sie sollten es vom Controller an die Ansicht übergeben, nicht sicher, warum Sie nicht möchten.
Tim Lewis
@ TimLewis Ich würde es vermeiden, es vom Controller zu übergeben, da es bei vielen Parametern ärgerlich sein kann und es schneller sein sollte, es direkt aus der Ansicht zu erhalten.
Andrea
Ich denke, es kann mühsam sein, viele Variablen vom Controller zu definieren und an die Ansicht zu übergeben, aber ich würde mich jeden Tag über schlechte Praktiken hinwegsetzen ...
Tim Lewis
Denken Sie über den Grund nach, warum Sie nicht direkt auf $ request zugreifen können, auch warum der direkte Zugriff auf $ _GET, $ _ POST, $ _ REQUEST eine schlechte Praxis ist
mvladk
@mvladk wahr, eigentlich. Frameworks entfernen möglicherweise fehlerhafte Daten aus diesen Variablen.
Bhargav Nanekalva

Antworten:

107

Das funktioniert gut:

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

Wo aist der URL-Parameter?

Weitere Informationen finden Sie hier: http://blog.netgloo.com/2015/07/17/lumen-getting-current-url-parameter-within-a-blade-view/

Andrea
quelle
Dadurch werden alle params zurückkehrenapp('request')->request->all()
Dav
Was wäre der Weg, wenn meine URL wie locahost lautet: 8000 / example / 10 und ich den Wert 10 erhalten möchte. @Andrea
Sajeeb Ahamed
@SajeebAhamed Besser, Sie stellen dies als neue Frage: stackoverflow.com/questions/ask
Andrea
56

Der kürzeste Weg, den ich benutzt habe

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

Einfacher in Laravel 5.7 und 5.8

{{ Request()->parameter }}
Ecko Santoso
quelle
21

Geben Sie Ihre URL an:

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

Der beste Weg, den Wert für 'a' zu ermitteln und auf der Seite anzuzeigen, besteht darin, Folgendes zu verwenden:

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

Wenn Sie es jedoch in einer if-Anweisung verwenden möchten, können Sie Folgendes verwenden:

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

Hoffe das hilft jemandem! :) :)

Brad Ahrens
quelle
9

Das funktioniert gut für mich:

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

Beispiel: Um den Paginierungsparameter in der Blade-Ansicht zu erhalten:

{{ app('request')->input('page') }}
Fred Sousa
quelle
8

Laravel 5.8

{{ request()->a }}
b00sted 'Schnecke'
quelle
7

Sie können die InputFassade über einen Alias öffentlich zugänglich machen in config/app.php:

'aliases' => [
    ...

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

Greifen Sie $_GETüber die Fassade direkt in der Blade-Ansicht / Vorlage auf URL- Parameterwerte zu:

{{ Input::get('a') }}
Nik Sumeiko
quelle
Lumen hat / config Ordner?
Mahefa
6

Gemäß offiziellen 5.8 Dokumenten:

Die Funktion request () gibt die aktuelle Anforderungsinstanz zurück oder erhält ein Eingabeelement:

$request = request();

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

Docs

Maksim Ivanov
quelle
4

Laravel 5.6:

{{ Request::query('parameter') }}
Alexander Kim
quelle
1
Bitte fügen Sie eine Erklärung hinzu.
Petezurich
1

Wenn Sie den Parameter route und pass verwenden, verwenden Sie diesen Code in Ihrer Blade-Datei

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