You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.4 KiB

8 years ago
  1. <?php
  2. namespace App\Http\Model;
  3. use Illuminate\Database\Eloquent\Model;
  4. class Menu extends Model
  5. {
  6. protected $table = 'menu';
  7. public $timestamps = false;
  8. protected $guarded = []; //$guarded包含你不想被赋值的字段数组。
  9. /**
  10. * 文件上传
  11. * @param $field
  12. * @return string
  13. */
  14. public function uploadImg($field)
  15. {
  16. if (Request::hasFile($field)) {
  17. $pic = Request::file($field);
  18. if ($pic->isValid()) {
  19. $newName = md5(rand(1, 1000) . $pic->getClientOriginalName()) . "." . $pic->getClientOriginalExtension();
  20. $pic->move('uploads', $newName);
  21. return $newName;
  22. }
  23. }
  24. return '';
  25. }
  26. //获取后台管理员所具有权限的菜单列表
  27. public static function getPermissionsMenu($role_id, $pid=0, $pad=0)
  28. {
  29. $res = [];
  30. $where['access.role_id'] = $role_id;
  31. $where['menu.pid'] = $pid;
  32. $where["menu.status"] = 1;
  33. $menu = object_to_array(\DB::table('menu')
  34. ->join('access', 'access.menu_id', '=', 'menu.id')
  35. ->select('menu.*', 'access.role_id')
  36. ->where($where)
  37. ->orderBy('listorder', 'asc')
  38. ->get());
  39. if($menu)
  40. {
  41. foreach($menu as $row)
  42. {
  43. $row['deep'] = $pad;
  44. if($PermissionsMenu = self::getPermissionsMenu($role_id, $row['id'], $pad+1))
  45. {
  46. $row['child'] = $PermissionsMenu;
  47. }
  48. $res[] = $row;
  49. }
  50. }
  51. return $res;
  52. }
  53. }