AdminAccessModel.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Models;
  3. use App\Models\BaseModel;
  4. /**
  5. * @description 权限表
  6. * @author wangzhoudong <admin@yijinba.com>;
  7. * @version 1.0
  8. * @date 2015-11-13
  9. *
  10. */
  11. class AdminAccessModel extends BaseModel
  12. {
  13. /**
  14. * 数据表名
  15. *
  16. * @var string
  17. *
  18. */
  19. protected $table = 'admin_access';
  20. /**
  21. * 主键
  22. */
  23. protected $primaryKey = 'id';
  24. //分页
  25. protected $perPage = PAGE_NUMS;
  26. /**
  27. * 可以被集体附值的表的字段
  28. *
  29. * @var string
  30. */
  31. protected $fillable = [
  32. 'role_id',
  33. 'menu_id'
  34. ];
  35. public function menus()
  36. {
  37. return $this->hasOne('App\Models\AdminMenusModel', 'id', 'menu_id');
  38. }
  39. public $timestamps = false;
  40. /**
  41. * 取得用户组的权限信息
  42. *
  43. * @param intval $groupId
  44. * @return array
  45. */
  46. public function getRoleAccessMenu($roleIds, $isMenu = false)
  47. {
  48. if (is_string($roleIds)) {
  49. $roleIds = explode(',', $roleIds);
  50. }
  51. $info = $this->select('admin_menus.id',
  52. 'admin_menus.pid',
  53. 'admin_menus.path',
  54. 'admin_menus.name',
  55. 'admin_menus.ico',
  56. 'admin_menus.display',
  57. 'admin_menus.sort')
  58. ->leftJoin('admin_menus', 'admin_access.menu_id', '=', 'admin_menus.id')
  59. ->leftjoin("admin_roles", "admin_access.role_id", "=", "admin_roles.id")
  60. ->whereIn('role_id', $roleIds)
  61. ->where("admin_roles.status", 1);
  62. if ($isMenu) {
  63. $info = $info->where("admin_menus.display", 1);
  64. }
  65. $info = $info
  66. ->orderBy('admin_menus.sort', 'desc')->orderBy('admin_menus.id', 'asc')
  67. ->groupby(\DB::raw("admin_menus.id"))
  68. ->get();
  69. return $info->toArray();
  70. }
  71. }