Проверка данных в Livewire
Форма поста уже умеет сохранять заголовок и текст в базу. Если отправить её с пустыми полями, запись всё равно появится: в таблице окажутся пустые строки, и отличить осмысленный пост от случайного клика по кнопке будет трудно.
В обычном Laravel проверку часто ставят там, где данные приходят из HTTP-запроса: правила сравнивают поля запроса с ожиданиями, при несоответствии ответ возвращает ошибки, а запись в базу не создаётся. Пользователь остаётся на той же странице и видит, что исправить.
У компонента Livewire картина похожая, но источник данных другой. Заголовок и текст уже лежат в публичных свойствах класса, а не в объекте запроса. Проверку удобно вызывать рядом с сохранением: в том же методе, который создаёт пост. Если правило не сходится, выполнение метода останавливается, создание записи не вызывается, страница остаётся на месте, и компонент может показать, что пошло не так.
Правила те же, что и в привычной проверке Laravel: обязательное поле, минимальная длина и другие ограничения. Меняется место, где их вызывают - здесь это метод компонента, рядом с сохранением, а не контроллер и не отдельный класс запроса.
При ошибке введённые значения обычно остаются в полях: они живут в свойствах, пока их специально не сбросят. Успешное сохранение можно по-прежнему завершать очисткой формы, но до неё метод просто не дойдёт, если проверка не прошла.
Со всем этим мы и будем разбираться в рамках данного раздела.