Menu.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 Menu extends Authenticatable
  13. {
  14. use HasApiTokens, Notifiable;
  15. protected $table = 'menus';
  16. protected $hidden = ['created_at', 'updated_at'];
  17. protected $fillable = ['parent_id', 'title', 'icon' ,'uri' ,'permission_name' ,'sort' ,'status' ,'type' ];
  18. const TYPE_MENU = 1;
  19. const TYPE_BUTTON = 2;
  20. const STATUS_SHOW = 1;
  21. const STATUS_HIDE = 2;
  22. protected function getCreatedAtAttribute($value)
  23. {
  24. return \Carbon\Carbon::parse($value)->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s');
  25. }
  26. protected function getUpdatedAtAttribute($value)
  27. {
  28. return \Carbon\Carbon::parse($value)->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s');
  29. }
  30. public function children()
  31. {
  32. return $this->hasMany(Menu::class, 'parent_id');
  33. }
  34. public function parent()
  35. {
  36. return $this->belongsTo(Menu::class, 'parent_id');
  37. }
  38. }