Значения Enum проверяются на Livewire

Могу ли я использовать приведенный ниже способ проверки или аналогичный Laravel в Livewire?

Validator::make($data, [
    'zones' => [
        'required',
        Rule::in(['first-zone', 'second-zone']),
    ],
]);

or

starts_with:foo,bar,...

Текущий код работал неправильно, во время тестирования он просто прошел, когда я проверил значение html с помощью Chrom Inspection.

Вид

...
<input wire:model=size type="radio" value="BICYCLE" name="BICYCLE"/>
<input wire:model=size type="radio" value="CAR" name="CAR"/>
<input wire:model=size type="radio" value="CAR" name="BOAT"/>
...
<button wire:click="checkVehicle">Check</button>
---

Компонент Livewire

public function checkVehicle()
{
    $this->validate([
        'size' => 'required|string|starts_with:BICYCLE,CAR,BOAT'
    ]);
}

person JsWizard    schedule 12.02.2021    source источник
comment
попробуйте использовать отправку формы вместо нажатия кнопки.   -  person IGP    schedule 13.02.2021
comment
взгляните здесь stackoverflow.com/questions/28976658/   -  person Zia Yamin    schedule 13.02.2021
comment
Вместо этого мне нужен Livewire в Laravel. спасибо.   -  person JsWizard    schedule 14.02.2021


Ответы (1)


Вам нужно использовать rules() как метод вместо свойства

use Illuminate\Validation\Rule;

public function rules()
{
    return [
        'zones' => ['required', Rule::in(['first-zone', 'second-zone'])],
    ];
}

public function checkVehicle()
{
    $this->validate();
}
person Digvijay    schedule 13.02.2021