Menu.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Models\System;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Support\Facades\DB;
  5. use Spatie\Permission\Traits\HasPermissions;
  6. use Spatie\Permission\Traits\HasRoles;
  7. use Spatie\Permission\Traits\RefreshesPermissionCache;
  8. class Menu extends Model
  9. {
  10. use HasRoles, HasPermissions, RefreshesPermissionCache;
  11. protected $table = 'system_menus';
  12. protected string $guard_name = 'web';
  13. protected $attributes = [];
  14. protected $guarded = [];
  15. public static $snakeAttributes = false;
  16. protected $appends = [];
  17. protected $casts = [
  18. 'visible' => 'bool',
  19. 'keepAlive' => 'bool',
  20. 'alwaysShow' => 'bool'
  21. ];
  22. // public function assignRole($role)
  23. // {
  24. //
  25. // }
  26. // public function disableAppends()
  27. // {
  28. // $this->appends = [];
  29. // return $this;
  30. // }
  31. // public function getPermissionAttribute()
  32. // {
  33. // $tableNames = config('permission.table_names');
  34. // $permission_ids = DB::table($tableNames['model_has_permissions'])->where('model_type', Menu::class)->where('model_id', $this->attributes['id'])->pluck('permission_id');
  35. // $permission_names = DB::table($tableNames['permissions'])->whereIn('id', $permission_ids)->pluck('name');
  36. // return implode('|', $permission_names->toArray());
  37. // }
  38. // public function setComponentNameAttribute($value)
  39. // {
  40. // $this->attributes['component_name'] = $value;
  41. // }
  42. //
  43. // public function setVisibleAttribute($value)
  44. // {
  45. // $this->attributes['visible'] = $value ? 1 : 0;
  46. // }
  47. // public function setAlwaysShowAttribute($value)
  48. // {
  49. // $this->attributes['always_show'] = $value ? 1 : 0;
  50. // }
  51. // public function getVisibleAttribute($value)
  52. // {
  53. // $this->attributes['visible'] = !$value;
  54. // }
  55. // public function setKeepAliveAttribute($value)
  56. // {
  57. // $this->attributes['keep_alive'] = $value ? 1 : 0;
  58. // }
  59. }