CityRequest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Http\Requests;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. use App\Enums\DefaultStatusEnum;
  5. use Illuminate\Validation\Rule;
  6. class CityRequest extends FormRequest
  7. {
  8. public function rules(): array
  9. {
  10. $rules = [
  11. 'name' => 'sometimes|string|max:255',
  12. 'country_id' => 'sometimes|exists:countries,id',
  13. 'state_id' => [
  14. 'sometimes',
  15. 'exists:states,id',
  16. ],
  17. 'status' => ['sometimes', Rule::enum(DefaultStatusEnum::class)],
  18. ];
  19. if ($this->isMethod('post')) {
  20. $rules['name'] = [
  21. 'required',
  22. 'string',
  23. 'max:255',
  24. Rule::unique('cities')->where(function ($query) {
  25. return $query->where('state_id', $this->state_id);
  26. })
  27. ];
  28. $rules['country_id'] = 'required|exists:countries,id';
  29. $rules['state_id'] = [
  30. 'required',
  31. 'exists:states,id',
  32. ];
  33. $rules['status'] = ['required', Rule::enum(DefaultStatusEnum::class)];
  34. }
  35. return $rules;
  36. }
  37. }