我正在尝试Laravel 5.8请求验证。我设法返回错误并将其显示在我的视图中。问题是当我尝试不触发任何验证规则时,无论出于何种原因,我都无法将记录插入表中。
错误
函数的参数太少 App \ Http \ Requests \ FieldRequest :: Illuminate \ Foundation \ Providers {closure}(), 通过了0次,而恰好是1次
控制器
class FormController extends Controller
{
public function create()
{
return view('create');
}
public function store(FieldRequest $req)
{
$validate_data = $req->validate();
Form::create($validate_data);
return redirect()->back()->with('message', 'Success!');
}
}
FormRequest
class FieldRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'item_name' => 'bail|required|max:255',
'sku_no' => 'required|alpha_num',
'price' => 'required|numeric',
];
}
public function messages()
{
return [
'item_name.required' => 'An Item Name is required',
'sku_no.required' => 'An SKU NO is required',
'price.required' => 'The price is required',
];
}
}
我希望在表中插入一些内容。我是否需要在控制器中执行验证才能实现?提前致谢!
答案 0 :(得分:5)
public function store(FieldRequest $req)
{
$data = $req->all();
Form::create($data);
return redirect()->back()->with('message', 'Success!');
}
在处理表单请求时,您无需使用validate()
函数,因为您的请求进入了表单请求以验证数据,然后它将存储记录