AdminAccessModel.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. return $this->hasOne('App\Models\AdminMenusModel','id','menu_id');
  37. }
  38. public $timestamps = false;
  39. /**
  40. * 取得用户组的权限信息
  41. *
  42. * @param intval $groupId
  43. * @return array
  44. */
  45. public function getRoleAccessMenu($roleIds,$isMenu = false)
  46. {
  47. if(is_string($roleIds)) {
  48. $roleIds = explode(',', $roleIds);
  49. }
  50. $info = $this->select('admin_menus.id',
  51. 'admin_menus.pid',
  52. 'admin_menus.path',
  53. 'admin_menus.name',
  54. 'admin_menus.ico',
  55. 'admin_menus.display',
  56. 'admin_menus.sort')
  57. ->leftJoin('admin_menus', 'admin_access.menu_id', '=', 'admin_menus.id')
  58. ->leftjoin("admin_roles","admin_access.role_id","=","admin_roles.id")
  59. ->whereIn('role_id',$roleIds)
  60. ->where("admin_roles.status",1);
  61. if($isMenu) {
  62. $info = $info->where("admin_menus.display",1);
  63. }
  64. $info = $info
  65. ->orderBy('admin_menus.sort', 'desc')->orderBy('admin_menus.id', 'asc')
  66. ->groupby(\DB::raw("admin_menus.id"))
  67. ->get();
  68. return $info->toArray();
  69. }
  70. }