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.