Основы
Валидация так же проста, как и в классах FormRequests, предоставляемых Laravel.
Вы можете просто добавить правила в метод rules() ресурса обычным способом.
namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...public function rules($item): array{return ['title' => ['required', 'string', 'min:5']];}//...}namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...public function rules($item): array{return ['title' => ['required', 'string', 'min:5']];}//...}

Отображение ошибок валидации
За отображение ошибок валидации в верхней части формы отвечает параметр ресурса $errorsAbove. По умолчанию значение true, что означает, что ошибки валидации будут отображаться.

Чтобы скрыть ошибки валидации в верхней части формы, установите параметр ресурса $errorsAbove в значение false.
namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...protected bool $errorsAbove = false;//...}namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...protected bool $errorsAbove = false;//...}

Сообщения
Используя метод validationMessages(), вы можете создавать свои собственные сообщения об ошибках валидации.
namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...public function validationMessages(): array{return ['email.required' => 'Требуется email'];}//...}namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...public function validationMessages(): array{return ['email.required' => 'Требуется email'];}//...}
Подготовка входных данных для валидации
Если вам нужно подготовить или очистить какие-либо данные из запроса перед применением правил валидации, вы можете использовать метод prepareForValidation().
namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...public function prepareForValidation(): void{request()?->merge(['email' => request()?->string('email')->lower()->value()]);}//...}namespace App\MoonShine\Resources;use MoonShine\Resources\ModelResource;class PostResource extends ModelResource{//...public function prepareForValidation(): void{request()?->merge(['email' => request()?->string('email')->lower()->value()]);}//...}