Laravel 重定向回变量无效
Laravel redirect back with variable not working
我正在构建一个 laravel 应用程序,我有这行代码应该将用户重定向回他刚刚提交的表单,其中包含旧的输入和一些操作的结果。
return back()->with(["result" => round($area, 2)])->withInput($request->all());
问题是我只收到 blade 中的旧输入,$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"
]
]
return redirect()->back()->with('result',round($area, 2))->withInput($request->all());
打电话
{{Session::get('result')}}
在你的 blade.
问题是我认为写作
return back()->with('bladeVar', $controllerVar)
与 return view('test')->with('bladeVar', $controllerVar);
相同,但不是。
您不能使用 blade 普通语法回显变量:{{ $bladeVar }}
,相反,您必须访问会话以获取值:{{ session('bladeVar') }}
.
在我改变显示数据的方式后,一切都按预期工作。
答案是你不能。
如果您想使用 with()
,请将其与 view()
一起使用,例如:
return view('welcome')->with(['name' => 'test']);
您不能将 with()
与 back()
和 redirect()
一起使用。它不会给你任何错误,但你不会在视图上获得变量。
更多信息:https://laravel.com/docs/master/views#passing-data-to-views
return view('profile.reset', compact('user'));
我正在构建一个 laravel 应用程序,我有这行代码应该将用户重定向回他刚刚提交的表单,其中包含旧的输入和一些操作的结果。
return back()->with(["result" => round($area, 2)])->withInput($request->all());
问题是我只收到 blade 中的旧输入,$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"
]
]
return redirect()->back()->with('result',round($area, 2))->withInput($request->all());
打电话 {{Session::get('result')}} 在你的 blade.
问题是我认为写作
return back()->with('bladeVar', $controllerVar)
与 return view('test')->with('bladeVar', $controllerVar);
相同,但不是。
您不能使用 blade 普通语法回显变量:{{ $bladeVar }}
,相反,您必须访问会话以获取值:{{ session('bladeVar') }}
.
在我改变显示数据的方式后,一切都按预期工作。
答案是你不能。
如果您想使用 with()
,请将其与 view()
一起使用,例如:
return view('welcome')->with(['name' => 'test']);
您不能将 with()
与 back()
和 redirect()
一起使用。它不会给你任何错误,但你不会在视图上获得变量。
更多信息:https://laravel.com/docs/master/views#passing-data-to-views
return view('profile.reset', compact('user'));