Role.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Models;
  3. /**
  4. * App\Models\Role
  5. *
  6. * @property int $id
  7. * @property string $name
  8. * @property string $slug
  9. * @property \Illuminate\Support\Carbon|null $created_at
  10. * @property \Illuminate\Support\Carbon|null $updated_at
  11. * @property-read \Illuminate\Database\Eloquent\Collection|\Encore\Admin\Auth\Database\Administrator[] $administrators
  12. * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ArticleCategory[] $categorys
  13. * @property-read \Illuminate\Database\Eloquent\Collection|\Encore\Admin\Auth\Database\Permission[] $permissions
  14. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role newModelQuery()
  15. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role newQuery()
  16. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role query()
  17. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role whereCreatedAt($value)
  18. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role whereId($value)
  19. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role whereName($value)
  20. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role whereSlug($value)
  21. * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Role whereUpdatedAt($value)
  22. * @mixin \Eloquent
  23. */
  24. class Role extends \Encore\Admin\Auth\Database\Role
  25. {
  26. protected static function boot()
  27. {
  28. parent::boot();
  29. static::deleting(function ($model) {
  30. $model->administrators()->detach();
  31. $model->permissions()->detach();
  32. $model->categorys()->detach();
  33. });
  34. }
  35. public function categorys()
  36. {
  37. $pivotTable = ArticleCategoryRole::class;
  38. $relatedModel = ArticleCategory::class;
  39. return $this->belongsToMany($relatedModel, $pivotTable, 'role_id', 'article_category_id');
  40. }
  41. }