Laravel 的 withInput() 和 withErrors() 为空

Laravel's withInput() and withErrors() are empty

我有一个 laravel 表单,它通过 POST 请求向控制器提交数据,就像这样...

public function store()
{
    $result = Validator::make(request() -> all(), $this -> rules);

    if ($result -> fails()) 
    { 
        return back() -> withInput() -> withErrors($result); 
    }
}

然而,当我被重定向回来时,通过 'old' 辅助方法 returns 没有访问输入数据,从 $errors 读取数据也是如此。

我认为会话数据正在丢失(可能是由于二次重定向?)。

我在 artisan 中检查了我的路由文件,web 中间件只在路由上 运行 一次。我也在使用数据库会话驱动程序。

有什么想法吗?我正在使用 Laravel 5.2.39

使用 return redirect()->back()->withInput()->withErrors($result);

试试这个 return 返回有错误的输入

$validator = Validator::make($request->all(), $rules);

if ($validator->fails()) {
    // fails, then return false
    return redirect()->back()->withErrors($validator->messages())->withInput($request->all());
}

原来这个问题与我使用 Bootstrap Validator 有关。我仍然需要弄清楚为什么,但它似乎在擦东西...

最近我遇到了这个错误,我找到了解决办法... 而不是把你的路线放在里面

Route::group(['middleware' => ['web']], function () { });

只需将其删除即可正常使用。它就像 'web' 中间件正在加载两次。