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


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/


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


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


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


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

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



1

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

{{dd(request()->route()->parameters)}}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.