Permission.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Database\Eloquent\Relations\HasMany;
  7. use Illuminate\Database\Eloquent\SoftDeletes;
  8. use Kalnoy\Nestedset\NodeTrait;
  9. class Permission extends Model
  10. {
  11. use HasFactory, SoftDeletes, NodeTrait;
  12. protected $guarded = ['id'];
  13. /**
  14. * The attributes that should be cast.
  15. *
  16. * @return array<string, string>
  17. */
  18. protected function casts(): array
  19. {
  20. return [
  21. 'parent_id' => 'integer',
  22. 'bits' => 'integer',
  23. ];
  24. }
  25. public function children(): HasMany
  26. {
  27. return $this->hasMany(Permission::class, 'parent_id');
  28. }
  29. public function parent(): BelongsTo
  30. {
  31. return $this->belongsTo(Permission::class, 'parent_id');
  32. }
  33. public function userTypePermissions(): HasMany
  34. {
  35. return $this->hasMany(UserTypePermission::class);
  36. }
  37. }