Models Resources

Правила валидации

Основы

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

validation

Отображение ошибок валидации

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

errors_above_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;
//...
}

errors_above_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()
]);
}
 
//...
}