我正在与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()
);
}
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:16)
问题在于您的StoreProjectRequest
及其rules()
方法。它应该返回数组,在你的代码中它可能会返回其他内容。请检查一下。