AdminPermissionRequest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Models\AdminPermission;
  4. use App\Rules\AdminPermissionHttpPath;
  5. use Illuminate\Support\Arr;
  6. use Illuminate\Validation\Rule;
  7. class AdminPermissionRequest extends FormRequest
  8. {
  9. public function rules()
  10. {
  11. $id = (int) optional($this->route('admin_permission'))->id;
  12. $rules = [
  13. 'name' => 'required|unique:admin_permissions,name,'.$id,
  14. 'slug' => 'required|unique:admin_permissions,slug,'.$id,
  15. 'http_method' => 'nullable|array',
  16. 'http_method.*' => Rule::in(AdminPermission::$httpMethods),
  17. 'http_path' => [
  18. 'nullable',
  19. new AdminPermissionHttpPath(),
  20. ],
  21. ];
  22. if ($this->isMethod('put')) {
  23. $rules = Arr::only($rules, $this->keys());
  24. }
  25. return $rules;
  26. }
  27. public function attributes()
  28. {
  29. return [
  30. 'name' => '名称',
  31. 'slug' => '标识',
  32. 'http_method' => '请求方法',
  33. 'http_method.*' => '请求方法',
  34. 'http_path' => '请求地址',
  35. ];
  36. }
  37. }