Laravel的withInput()和withErrors()为空

时间:2016-06-27 15:48:11

标签: php laravel laravel-5.2 laravel-routing

我有一个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

4 个答案:

答案 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'中间件加载了两次。