Menu.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\validate\sys;
  12. use app\dict\sys\MenuTypeDict;
  13. use app\dict\sys\MethodDict;
  14. use think\facade\Lang;
  15. use think\Validate;
  16. /**
  17. * Class Menu
  18. * @package app\validate\sys
  19. */
  20. class Menu extends Validate
  21. {
  22. //用户名或密码的规范可能是从数据库中获取的
  23. protected $rule = [
  24. 'menu_name' => 'require',
  25. // 'menu_key' => 'unique:sys_menu',//防止key值重复
  26. 'menu_type' => 'require|checkMenuType',
  27. 'methods' => 'requireWith:api_url|checkMethodType',
  28. 'router_path' => 'requireIf:menu_type,1',
  29. 'view_path' => 'requireIf:menu_type,1'
  30. ];
  31. protected $message = [
  32. 'menu_name.require' => 'validate_menu.menu_name_require',
  33. 'router_path.requireIf' => 'validate_menu.router_path_requireif',
  34. 'view_path.requireIf' => 'validate_menu.view_path_requireif',
  35. 'methods.requireWith' => 'validate_menu.methods_requirewith',
  36. ];
  37. protected $scene = [
  38. 'add' => ['menu_name', 'menu_type', 'menu_key', 'router_path', 'view_path', 'methods'],
  39. 'edit' => ['menu_name', 'menu_type', 'router_path', 'view_path', 'methods'],//更新得时候因为key中有上下级关系,所以menu_key字段是不能更新得
  40. ];
  41. /**
  42. * 自定义验证 菜单类型
  43. * @param $value
  44. * @param $rule
  45. * @param array $data
  46. * @return Lang|true
  47. */
  48. protected function checkMenuType($value, $rule, $data = [])
  49. {
  50. return isset(MenuTypeDict::getMenuType()[$value]) ? true : get_lang("validate_menu.not_exit_menu_type");
  51. }
  52. /**
  53. * 自定义验证 请求类型
  54. * @param $value
  55. * @param $rule
  56. * @param array $data
  57. * @return Lang|true
  58. */
  59. protected function checkMethodType($value, $rule, $data = [])
  60. {
  61. return isset(MethodDict::getMethodType()[$value]) ? true : get_lang("validate_menu.not_exit_request_type");
  62. }
  63. }