Bristol SU Support Package
src
Filters
FilterInstance.php
Go to the documentation of this file.
1
<?php
2
3
4
namespace
BristolSU\Support\Filters
;
5
6
7
use
BristolSU\Support\Filters\Contracts\FilterInstance
as
FilterInstanceContract
;
8
use
BristolSU\Support\Filters\Contracts\FilterRepository
as
FilterRepositoryContract
;
9
use
BristolSU\Support\Filters\Contracts\Filters\GroupFilter
;
10
use
BristolSU\Support\Filters\Contracts\Filters\RoleFilter
;
11
use
BristolSU\Support\Filters\Contracts\Filters\UserFilter
;
12
use
BristolSU\Support\Logic\Logic
;
13
use
BristolSU\Support\Revision\HasRevisions
;
14
use
Illuminate\Database\Eloquent\Model
;
15
use
Illuminate\Database\Eloquent\Relations\BelongsTo
;
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
}
BristolSU\Support\Filters\FilterInstance\alias
alias()
Definition:
FilterInstance.php:118
BristolSU\Support\Filters\FilterInstance\$appends
$appends
Definition:
FilterInstance.php:47
FilterInstance
BristolSU\Support\Filters
Definition:
CachedFilterTesterDecorator.php:3
BristolSU\Support\Filters\FilterInstance\$fillable
$fillable
Definition:
FilterInstance.php:29
HasRevisions
Model
BristolSU\Support\Filters\Contracts\Filters\UserFilter
Definition:
UserFilter.php:11
BelongsTo
BristolSU\Support\Filters\Contracts\FilterInstance\alias
alias()
BristolSU\Support\Filters\Contracts\FilterInstance
Definition:
FilterInstance.php:8
BristolSU\Support\Filters\FilterInstance\getForAttribute
getForAttribute()
Definition:
FilterInstance.php:108
BristolSU\Support\Filters\FilterInstance\logic
logic()
Definition:
FilterInstance.php:97
BristolSU\Support\Filters\FilterInstance\$casts
$casts
Definition:
FilterInstance.php:38
BristolSU\Support\Filters\Contracts\Filters\RoleFilter
Definition:
RoleFilter.php:11
UserFilter
BristolSU\Support\Filters\Contracts\Filters\GroupFilter
Definition:
GroupFilter.php:11
GroupFilter
RoleFilter
BristolSU\Support\Filters\FilterInstance\settings
settings()
Definition:
FilterInstance.php:66
FilterRepository
BristolSU\Support\Filters\FilterInstance\name
name()
Definition:
FilterInstance.php:56
Logic
Generated by
1.8.13