Laravel Livewire如何验证数组数据

Laravel Livewire how to validate array data

我尝试在提交表单时验证数组

<input type="text" class="form-control" wire:model.lazy="data.name" placeholder="name">
    //at livewire component class
    $data = [
        'name' => 'someValue',
        'phone' => 'someValue',
        'email' => 'someValue'
    ]

我试试这个

    Validator::make($this->data,[
      'name' => 'required',
       ...
    ])->validate();

但是不工作,请帮助我。

您可以使用与 wire:model:

中相同的语法进行验证
$this->validate([
    'data.name' => ['required'],
]);

我是 Livewire 的新手,如果这与您的问题相关,我想知道。但是,由于您的问题在 Google 中排在首位。也许这会对其他人有所帮助。

public function saveAdd()
{
  $rules_state = [
    'state_name' => 'required',
    'state_email' => 'required',
  ];
  $check_state = $this->inputsFormAddProduct;
  foreach ($this->inputsFormAddProduct as $key => $value) {
    $rules_state = array_merge($rules_state, [
      'state_product.'.$value => 'required',
      'state_qty.'.$value => 'required',
    ]);
  }
  $validatedData = $this->validate($rules_state,
    [
        'required' => 'The :attribute cannot be empty.',
    ],
  );
  dd($rules_state);
}