Role.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Builder;
  4. use Illuminate\Foundation\Auth\User as Authenticatable;
  5. use Illuminate\Notifications\Notifiable;
  6. use Laravel\Sanctum\HasApiTokens;
  7. /**
  8. * Admin
  9. * @mixin Builder
  10. * @method static Builder|static where($column, $operator = null, $value = null, $boolean = 'and')
  11. */
  12. class Role extends Authenticatable
  13. {
  14. use HasApiTokens, Notifiable;
  15. protected $table = 'roles';
  16. protected $hidden = ['created_at', 'updated_at'];
  17. protected $fillable = ['name', 'display_name', 'description' ];
  18. protected $appends = ['menus_ids', 'menus_uris'];
  19. protected function getCreatedAtAttribute($value)
  20. {
  21. return \Carbon\Carbon::parse($value)->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s');
  22. }
  23. protected function getUpdatedAtAttribute($value)
  24. {
  25. return \Carbon\Carbon::parse($value)->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s');
  26. }
  27. public function users()
  28. {
  29. return $this->belongsToMany(Admin::class, 'role_user', 'role_id', 'user_id');
  30. }
  31. public function menus()
  32. {
  33. return $this->belongsToMany(Menu::class, 'role_menu', 'role_id', 'menu_id');
  34. }
  35. public function getMenusIdsAttribute()
  36. {
  37. return $this->menus->pluck('id')->toArray();
  38. }
  39. public function getMenusUrisAttribute()
  40. {
  41. return $this->menus->pluck('uri')->toArray();
  42. }
  43. }