Laravel 表单验证来自 ajax returns 错误

Laravel form validation from ajax returns error

我正在尝试使用 ajax 将数据插入数据库。在此之前,我需要验证表格。我将序列化的表单数据传递给控制器​​。但是当我尝试验证它时,它会给我错误 "The given data was invalid."

这是我的代码

ajax函数

$('#btn-save-appointment').on('click', function(e) {
    e.preventDefault();
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
        }
    });
    
    jQuery.ajax({
        url: "/saveAppointment",
        method: 'post',
        data: { formdata: $('#appointment-event').serialize() },
        cache: false,
        processData : false,
        success: function(result){ 
          console.log('form: '+result);            
        
        }
    });
 });

控制器

public function saveAppointment(AppointmentStoreRequest $request) {         
    $validated = $request->validated();
    dd($validated);
}

AppointmentStoreRequest

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class AppointmentStoreRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }
   public function rules()
   {
    return [
        'category' => 'required',
        'treatments' => 'required',
        'time-in-minutes' => 'required',
        'treatmentsRooms' => 'required',
        'date' => 'required',
        'time' => 'required',
        'gender' => 'required',
        'first_name' => 'sometimes|required',
        'last_name' => 'sometimes|required',
        'dob' => 'sometimes|required',
        'insurance' => 'sometimes|required',
        'phone' => 'sometimes|required',
        'email' => 'sometimes|required|email'
    ];
   }
 }

从您的 data 属性 中删除 { formdata: ... }:

data: $('#appointment-event').serialize(),