Laravel重定向,变量不起作用

时间:2017-08-22 10:03:52

标签: php laravel-5.4 laravel-blade

我正在构建一个laravel应用程序,我有这行代码,应该将用户重定向到他刚刚提交的表单,使用旧的输入和一些操作的结果。

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

问题是我只接收刀片中的旧输入,并且$result变量在视图中不可用。

这是我尝试输出结果的方式:

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

以下是提交后视图中的变量:

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

3 个答案:

答案 0 :(得分:3)

问题在于我认为写作 return back()->with('bladeVar,$controllerVar)return view('test')->with(['bladeVar'='controllerVar']);相同,但不是。{/ p>

您无法回复变量发送第一种方式{{$bladeVar}},您需要访问会话以获取类似{{session('bladeVar')}}的值。

在我改变了显示数据的方式后,所有数据都按预期工作。

答案 1 :(得分:0)

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

呼叫 {{会话::获得( '结果')}} 在你的刀片中。

答案 2 :(得分:0)

答案是你不能。

如果您想使用with(),请将其与view()一起使用,如:

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

您无法将with()back()redirect()一起使用。它不会给你任何错误,但你不会在视图上得到变量。

更多信息:https://laravel.com/docs/master/views#passing-data-to-views