我有一个laravel表单,它通过POST请求将数据提交给控制器,如此......
public function store()
{
$result = Validator::make(request() -> all(), $this -> rules);
if ($result -> fails())
{
return back() -> withInput() -> withErrors($result);
}
}
然而,当我重定向回来时,通过“旧”访问输入数据。 helper方法什么都不返回,从$ errors读取数据也是如此。
我认为会话数据丢失了(可能是由于辅助重定向?)。
我已经在工匠中检查过我的路线文件,而网络中间件只在路线上运行一次。我也在使用数据库会话驱动程序。
有什么想法吗?我使用的是Laravel 5.2.39
答案 0 :(得分:0)
使用 return redirect() - > back() - > withInput() - > withErrors($ result);
答案 1 :(得分:0)
尝试此操作以返回错误输入
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
// fails, then return false
return redirect()->back()->withErrors($validator->messages())->withInput($request->all());
}
答案 2 :(得分:0)
事实证明这个问题与我使用Bootstrap Validator有关。我仍然需要找出原因,但它似乎在擦拭......
答案 3 :(得分:0)
最近我遇到这个错误,我找到了解决方案...... 而不是把你的路线放在这个
Route::group(['middleware' => ['web']], function () { });
只需将其移除即可正常使用。就像'web'中间件加载了两次。