Laravel Livewire как проверить данные массива

#laravel-7 #laravel-livewire

#laravel-7 #laravel-livewire

Вопрос:

Я пытаюсь проверить массив, когда форма отправлена как

 <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();
  

но не работает, пожалуйста, помогите мне.

Ответ №1:

Вы можете проверить, используя тот же синтаксис, который вы использовали в wire:model :

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

Комментарии:

1. Спасибо, что он тоже отображает ошибку, я должен сделать это на блейде @error('data.name') ...

Ответ №2:

Я новичок в использовании Livewire, Idk, если это связано с вашим вопросом. Но, поскольку ваш вопрос находится на вершине в 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);
}