我正在构建一个 Laravel 应用程序,我有这行代码,它应该将用户重定向回他刚刚提交的表单,以及旧的输入和一些操作的结果。
return back()->with(["result" => round($area, 2)])->withInput($request->all());
问题是我只收到 Blade 中的旧输入和
$result
变量在 View 中不可用。这就是我尝试输出结果的方式:
<input type="text" name="result" value="{{isset($result)&&old('roofType')==0?$result:''}} ㎡ " class="form-control input-sm" >
这是我提交后 View 中的变量:
{{ 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"
]
]
最佳答案
问题是我认为写作return back()->with('bladeVar', $controllerVar)
与 return view('test')->with('bladeVar', $controllerVar);
相同,但它不是。
您不能使用 Blade 正常语法回显变量:{{ $bladeVar }}
,相反,您必须访问 session 才能获取值:{{ session('bladeVar') }}
.
在我改变显示数据的方式后,一切都按预期工作。
关于php - Laravel 重定向回变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45814650/