Основы
Валидация так же проста, как и в классах 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()]);}//...}