Bristol SU Support Package
FilterInstance.php
Go to the documentation of this file.
1 <?php
2 
3 
5 
6 
16 
20 class FilterInstance extends Model implements FilterInstanceContract
21 {
22  use HasRevisions;
23 
29  protected $fillable = [
30  'alias', 'name', 'settings'
31  ];
32 
38  protected $casts = [
39  'settings' => 'array'
40  ];
41 
47  protected $appends = [
48  'for'
49  ];
50 
56  public function name()
57  {
58  return $this->name;
59  }
60 
66  public function settings()
67  {
68  return $this->settings;
69  }
70 
77  public function for ()
78  {
79  $filter = app(FilterRepositoryContract::class)->getByAlias($this->alias());
80  if ($filter instanceof UserFilter) {
81  return 'user';
82  }
83  if ($filter instanceof GroupFilter) {
84  return 'group';
85  }
86  if ($filter instanceof RoleFilter) {
87  return 'role';
88  }
89  throw new \Exception('Filter must extend Filter contract');
90  }
91 
97  public function logic()
98  {
99  return $this->belongsTo(Logic::class);
100  }
101 
108  public function getForAttribute()
109  {
110  return $this->for();
111  }
112 
118  public function alias()
119  {
120  return $this->alias;
121  }
122 
123 
124 }