UserRequest.php 980 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Http\Requests;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. use App\Enums\UserTypeSource;
  5. use Illuminate\Validation\Rule;
  6. class UserRequest extends FormRequest
  7. {
  8. public function rules(): array
  9. {
  10. $rules = [
  11. 'name' => 'required|string',
  12. 'password' => 'sometimes|string|nullable',
  13. 'type' => ['sometimes', Rule::enum(UserTypeSource::class)],
  14. ];
  15. // Determine if the request is for creating or updating
  16. if ($this->isMethod('post')) {
  17. // Rules for creating a new user
  18. $rules['email'] = 'required|unique:users,email|email';
  19. } elseif ($this->isMethod('put') || $this->isMethod('patch')) {
  20. // Rules for updating an existing user
  21. $rules['email'] = [
  22. 'required',
  23. 'email',
  24. Rule::unique('users', 'email')->ignore($this->route('id')),
  25. ];
  26. }
  27. return $rules;
  28. }
  29. }