Menu.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\model\system\auth;
  12. use app\common\model\BaseModel;
  13. class Menu extends BaseModel
  14. {
  15. /**
  16. * @return string
  17. * @author xaboy
  18. * @day 2020-03-30
  19. */
  20. public static function tablePk(): string
  21. {
  22. return 'menu_id';
  23. }
  24. /**
  25. * @return string
  26. * @author xaboy
  27. * @day 2020-03-30
  28. */
  29. public static function tableName(): string
  30. {
  31. return 'system_menu';
  32. }
  33. public function parent()
  34. {
  35. return $this->hasOne(self::class, 'menu_id', 'pid');
  36. }
  37. public function searchMenuIdAttr($query,$value)
  38. {
  39. $query->where('menu_id', $value);
  40. }
  41. public function searchRouteAttr($query,$value)
  42. {
  43. $query->where('route', $value);
  44. }
  45. public function getParentAttr()
  46. {
  47. return self::where('menu_id',$this->pid)->find();
  48. }
  49. public function getChildAttr($value,$data)
  50. {
  51. return self::where(['pid'=>$data['menu_id'],'is_menu'=>1])->find();
  52. }
  53. public function getParentsAttr()
  54. {
  55. $menu_ids = explode('/',$this->path);
  56. return self::whereIn('menu_id',$menu_ids)->select()->toArray();
  57. }
  58. }