2017-08-22 1 views
1

私はlaravelアプリケーションを構築しています。ユーザーにリダイレクトする必要があるこのコード行は、古い入力といくつかの操作の結果とともに投稿されました。Laravelは変数が動作しない状態でリダイレクトします

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

問題は、私は唯一のブレードで古い入力を受け取ることで、$result変数は、ビューでは使用できません。

これは私が出力に結果を試してみる方法です:

{{ 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" 
            ] 
      ] 

答えて

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

コール {{セッション:

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

そして、ここでは、私はビューを持っている変数は、後に提出するものです:get( 'result')}}あなたのブレードの 。

+0

が、残念ながら私はすでにこのソリューションを試みたが、私も疲れて、それが再びちょうど今、そのは私の問題を解決していない... –

+0

ので、直接uがあるフラッシュセッションを使用することができます動作しない場合()と同じように$ 0-> session() - > flash( 'result'、round($ area、2)); –

1

問題は、私が return back()->with('bladeVar,$controllerVar)と書くことがreturn view('test')->with(['bladeVar'='controllerVar']);と同じであると思っていたことでした。

{{$bladeVar}}のように最初の方法で変数をエコーすることができない場合は、このセッションにアクセスして{{session('bladeVar')}}のような値を取得する必要があります。

私はデータを表示する方法を変更した後、すべて期待どおりに動作しました。

0

答えはできません。

あなたは次のようにview()でそれを使用し、その後with()を使用する場合:あなたはback()redirect()with()を使用することはできません

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

。それはあなたにエラーを与えませんが、あなたはビュー上で変数を取得しません。

さらに詳しい情報:https://laravel.com/docs/master/views#passing-data-to-views

+0

私は私のビューで変数を得ましたが、通常の方法ではありません、私はセッションでそれを得ました。 –

+0

リターンビュー( 'welcome')を使用すると、withImput()はもう動作しません。どのように私はこれを修正することができます任意のアイデア? –

+0

どのようなエラーが表示されますか?そして、問題にコードを追加してください。 –

関連する問題