Laravel表单验证后插入记录

eug*_*dez 5 php validation laravel laravel-validation

我正在尝试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!');
    }
}
Run Code Online (Sandbox Code Playgroud)

表格请求

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',
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

我期望在表中插入一些内容。我是否需要在控制器中执行验证才能实现?提前致谢!

Kar*_*ran 5

    public function store(FieldRequest $req)
    {
          $data = $req->all();           

          Form::create($data);

          return redirect()->back()->with('message', 'Success!');
    }
Run Code Online (Sandbox Code Playgroud)

当您使用表单请求时,您不需要使用validate()功能,因为您的请求会进入表单请求以验证数据,然后它将存储记录