我正在构建一个laravel应用程序,我有这行代码,应该将用户重定向到他刚刚提交的表单,使用旧的输入和一些操作的结果。
return back()->with(["result" => round($area, 2)])->withInput($request->all());
问题是我只接收刀片中的旧输入,并且$result
变量在视图中不可用。
这是我尝试输出结果的方式:
<input type="text" name="result" value="{{isset($result)&&old('roofType')==0?$result:''}} ㎡ " 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"
]
]
答案 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