Проверка одного поля в Livewire
Давайте теперь возьмём форму с двумя полями. Нужно убедиться, что заголовок не пустой, а текст можно заполнить позже. Если гнать проверку по всей форме, второе поле тоже загорится красным, хотя его ещё не трогали.
На компоненте есть приём, который прогоняет правила только для одного свойства. Остальные значения пока не участвуют в проверке.
Давайте создадим компонент
PostCheck:
php artisan make:livewire PostCheck --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/check', function () {
return view('posts-check');
});
?>
<x-layout>
<livewire:post-check />
</x-layout>
Давайте заведём поля и метод
check с правилом
для заголовка:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostCheck extends Component
{
public $title = '';
public $body = '';
public function check()
{
$this->validateOnly('title', [
'title' => 'required',
]);
}
public function render()
{
return view('livewire.post-check');
}
}
?>
Давайте свяжем поля, ошибку и кнопку:
<div>
<input
type="text"
wire:model="title"
>
@error('title')
<div>{{ $message }}</div>
@enderror
<textarea wire:model="body"></textarea>
<button type="button" wire:click="check">
Check
</button>
</div>
Создайте компонент EmployeeCheck.
Проверяется только имя,
пустая должность не показывает
ошибку.