AdminMenu.php 961 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App;
  3. use App\Scopes\SortScope;
  4. use Illuminate\Database\Eloquent\Model;
  5. class AdminMenu extends Model
  6. {
  7. protected $fillable = ['name', 'url', 'icon', 'sort', 'pid'];
  8. protected $connection = 'write';
  9. protected static function boot()
  10. {
  11. parent::boot();
  12. static::addGlobalScope(new SortScope);
  13. }
  14. public function getNameAttribute($value)
  15. {
  16. $langv=trans("menu.".$value);
  17. if(strstr($langv,"menu."))return $value;
  18. return $langv??$value;
  19. }
  20. //
  21. public function roles()
  22. {
  23. return $this->belongsToMany(AdminRole::class);
  24. }
  25. /**
  26. * 无限分级菜单,获取下一级菜单
  27. *
  28. */
  29. public function children()
  30. {
  31. return $this->hasMany(self::class, 'pid');
  32. }
  33. /**
  34. * 无限分级菜单,获取上一级菜单
  35. *
  36. */
  37. public function parent()
  38. {
  39. return $this->belongsTo(self::class, 'pid');
  40. }
  41. }