DemandRequest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Http\Requests\Demand;
  3. use App\Traits\RequestApiFormValidation;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. use Illuminate\Support\Facades\Request;
  6. use Illuminate\Support\Facades\Route;
  7. class DemandRequest extends FormRequest
  8. {
  9. use RequestApiFormValidation;
  10. protected $storeApiRules = [
  11. 'description' => 'required',
  12. 'type' => 'required|integer',
  13. ];
  14. protected $storeApiMessage = [
  15. 'description.required' => '需求描述为必填项',
  16. 'type.required' => '需求类型为必填项',
  17. ];
  18. protected $updateApiRules = [];
  19. protected $updateApiMessage = [];
  20. protected $uploadFileApiRules = [
  21. 'file' => 'required|file|image'
  22. ];
  23. protected $uploadFileApiMessage = [
  24. 'file.required' => '请选择上传文件',
  25. 'file.file' => '未选择上传文件',
  26. 'file.image' => '上传文件需为图片',
  27. ];
  28. protected $destroyApiRules = ['id' => 'required'];
  29. protected $destroyApiMessage = ['id.required' => 'id不能为空'];
  30. public function authorize(): bool
  31. {
  32. return true;
  33. }
  34. public function rules(): array
  35. {
  36. $routeName = Route::currentRouteName();
  37. switch ($routeName) {
  38. case 'demand.storeApi':
  39. return $this->storeApiRules;
  40. case 'demand.updateApi':
  41. return $this->updateApiRules;
  42. case 'demand.uploadFileApi':
  43. return $this->uploadFileApiRules;
  44. case 'demand.destroyApi':
  45. return $this->destroyApiRules;
  46. default :
  47. return [];
  48. }
  49. }
  50. public function messages(): array
  51. {
  52. $routeName = Route::currentRouteName();
  53. switch ($routeName) {
  54. case 'demand.storeApi':
  55. return $this->storeApiMessage;
  56. case 'demand.updateApi':
  57. return $this->updateApiMessage;
  58. case 'demand.uploadFileApi':
  59. return $this->uploadFileApiMessage;
  60. case 'demand.destroyApi':
  61. return $this->destroyApiMessage;
  62. default :
  63. return [];
  64. }
  65. }
  66. }