2016-07-08 4 views
2

Ich versuche, in Laravel wie diese zu umleiten:Laravel 5.1 Redirect mit variabler

in meinem Controller:

$state = false; 
    return redirect()->route('newPr')->with('errorMessageDuration', 'error', $state); 

und meiner Ansicht nach versuche ich, es so zu erhalten:

<input id="PrId" type="text" value="{{ isset($state) ? $state : '' }}"> 

aber irgendwie funktioniert es nicht, es bleibt leer.

Ich möchte es dauerhaft gespeichert werden.

Antwort

2

Verwenden withErrors() mit einem assoziativen Array statt, etwa so:

return redirect()->route('newPr')->withErrors(compact('state')); 

Dann können Sie einfach die Variable in der View $ Fehler verwenden.

Vom docs:

Die $ errors Variable immer definiert ist und sicher verwendet werden kann. Die Variable $ errors wird eine Instanz von Illuminate \ Support \ MessageBag sein. Weitere Informationen zum Arbeiten mit diesem Objekt finden Sie unter check out its documentation.

+0

hat nicht funktioniert: utdev

+0

' $ errors', Plural.Und Sie können es sicher verwenden, ohne zu überprüfen, ob es "gesetzt" ist, weil es immer in Ihren Ansichten verfügbar ist. Ich werde die Antwort mit Dokumenten aktualisieren. – rzb

+0

kann ich das auch verwenden: 'return redirect() -> zurück() -> withErrors (compact ('state'));' – utdev

2

Versuchen Sie, die Sitzung mit ihm, anzuzeigen

<input id="PrId" type="text" value="{{ isset(session($state)) ? $session($state) : '' }}"> 
+0

Hallo, bekomme ich diese Meldung 'Kann isset() nicht auf das Ergebnis eines Funktionsaufrufs verwenden (Sie können stattdessen" null! == func() "verwenden)' – utdev

1

Verwenden Sitzungen.

$request->session()->flash('error', 'Some error message'); 
return redirect()->route('newPr'); 

Und in der Ansicht:

@if (session('error')) 
    The error is {{ session('error') }} 
@endif 
+0

kann ich das dauerhaft speichern? – utdev

+0

@ JohnDoe2, ja mit 'put' anstelle von' flash'. – Repox

1

with Methode nimmt zwei Parameter. Der erste ist der key und der zweite value. Oder wenn der 1. Parameter ein Array ist, wird key der key und value der value sein.

Also in Ihrem Fall können Sie tun, ->with('state', $state) Oder ->with(compact('state'))

with Methode wird diesen Wert auf die session so um spülen Sie den Wert, den Sie es aus session wie diese session('state')

Sie können erhalten müssen abrufen Übergeben Sie einen beliebigen Wert auf diese Weise.