Laravel - 表单验证错误 - 参数2必须是数组

时间:2015-10-14 21:21:27

标签: php forms validation laravel

我正在与Laravel合作,每次提交表单时都会给我这个错误:

Factory.php第91行中的ErrorException: 传递给Illuminate \ Validation \ Factory :: make()的参数2必须是数组类型,给定null,在/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php中调用83并定义

这是控制器的一些代码,即使我不尝试将数据发送到数据库,它也会给我这个错误。 (现在它只是重定向)

public function store(StoreProjectRequest $request)
{


    return Redirect::to('/index');

}

这是我定义路线的方式:

Route::get('/projects','ProjectsController@index');
Route::get('/create','ProjectsController@create');

Route::post('/create','ProjectsController@store');

错误引用的行是这里的返回部分:

protected function getValidatorInstance()
{
    $factory = $this->container->make('Illuminate\Validation\Factory');

    if (method_exists($this, 'validator')) {
        return $this->container->call([$this, 'validator'], compact('factory'));
    }

    return $factory->make(
        $this->all(), $this->container->call([$this, 'rules']), $this->messages(), $this->attributes()
    );
}

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:16)

问题在于您的StoreProjectRequest及其rules()方法。它应该返回数组,在你的代码中它可能会返回其他内容。请检查一下。