2017-08-22 1 views
1

ich bin eine Laravel-Anwendung erstellen und ich habe diese Codezeile, die den Benutzer zurück zu Formular umleiten soll er nur eingereicht, mit der alten Eingabe und das Ergebnis einiger Operationen.Laravel Redirect zurück mit Variable funktioniert nicht

return back()->with(["result" => round($area, 2)])->withInput($request->all()); 

Das Problem ist, dass ich nur den alten Eingang in Klinge erhalten und das $result Variable ist in der Ansicht nicht verfügbar.

Dies ist, wie ich die Ausgabe versuchen, das Ergebnis:

<input type="text" name="result" value="{{isset($result)&&old('roofType')==0?$result:''}} &#x33a1; " class="form-control input-sm" > 

Und hier ist das, was Variablen i in der Ansicht haben nach einreichen:

{{ dd(get_defined_vars()['__data']) }}: 

array:7 [▼ 
     "__env" => Factory {#89 ▶} 
     "app" => Application {#3 ▶} 
     "errors" => ViewErrorBag {#169 ▶} 
     "roofName" => "Acoperis intr-o apa" 
     "roofType" => "1" 
     "roofFolder" => "A1" 
     "baseFields" => array:3 [▼ 
            0 => "L" 
            1 => "l" 
            2 => "H" 
            ] 
      ] 

Antwort

0
return redirect()->back()->with('result',round($area, 2))->withInput($request->all()); 

Aufruf {{Session: : get ('Ergebnis')}} in Ihrem Blade.

+0

leider schon ich diese Lösung versucht, und ich müde auch wieder gerade jetzt, und es ist nicht mein Problem zu lösen ... –

+0

Also, wenn nicht direkt arbeiten kann u Flash-Sitzung verwenden, das ist, so wie mit() $ request-> session() -> flash ('result', round ($ area, 2)); –

1

Das Problem war, dass ich dachte, dass Schreiben return back()->with('bladeVar,$controllerVar) war das gleiche mit return view('test')->with(['bladeVar'='controllerVar']);, und es ist nicht.

Sie können eine Variable nicht senden senden Sie die erste Möglichkeit wie diese {{$bladeVar}}, müssen Sie auf die Sitzung zugreifen, um den Wert wie folgt {{session('bladeVar')}} zu erhalten.

Nachdem ich die Art und Weise geändert habe, wie ich die Daten angezeigt habe, hat alles wie erwartet funktioniert.

0

Die Antwort ist, dass Sie nicht können.

Wenn Sie mit view() wie with() dann verwenden, verwenden möchten:

return view('welcome')->with(['name' => 'test']); 

können Sie nicht with() mit back() und redirect() verwenden. Es wird Ihnen keinen Fehler geben, aber Sie werden die Variable in der Ansicht nicht erhalten.

Weitere Informationen: https://laravel.com/docs/master/views#passing-data-to-views

+0

Ich habe die Variable aus meiner Sicht, aber nicht den üblichen Weg, ich habe es über Sitzung. –

+0

Wenn ich die Rückansicht ('Willkommen') benutze, funktioniert die withImput() nicht mehr. Irgendeine Idee, wie ich das dann reparieren kann? –

+0

Welchen Fehler bekommen Sie? Und bitte Code in Frage stellen. –

Verwandte Themen