Laravel重定向回到变量不起作用

Flo*_*ate 2 php laravel-blade laravel-5.4

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

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

问题是我仅在Blade中收到旧输入,并且该$result变量在视图中不可用。

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

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

这是提交后我在视图中拥有的变量:

{{ 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"
                                  ]
          ]
Run Code Online (Sandbox Code Playgroud)

Flo*_*ate 5

问题是我认为写作return back()->with('bladeVar', $controllerVar)与写作 相同return view('test')->with('bladeVar', $controllerVar);,但事实并非如此。

您无法使用刀片常规语法:来回显变量{{ $bladeVar }},而是必须访问会话以获取值:{{ session('bladeVar') }}

更改方式后,显示数据均按预期工作。

  • return back()-&gt;with('something') 只能由 `session` 访问。 (2认同)
  • 花了整整一个宝贵的时间在疯狂的东西上,直到发现了这个。非常感谢你的分享! (2认同)