// php artisan make:request CreateUserRequest
class CreateUserRequest extends FormRequest {
public function authorize(): bool {
return $this->user()->can('create', User::class);
}
public function rules(): array {
return [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
'age' => 'required|integer|min:18',
];
}
public function messages(): array {
return ['email.unique' => 'Этот email уже занят'];
}
}
// Контроллер
public function store(CreateUserRequest $request): JsonResponse {
$validated = $request->validated(); // уже валидировано
$user = User::create($validated);
return response()->json($user, 201);
}