В моей модели есть несколько областей действия для relativeTo
или notRelativeTo
:
public function scopeRelativeTo($query, User $user)
{
$teamIDs = $user->teams->pluck('id');
$query->where('assigned_user_id', $user->id)
->orWhere('reported_by', $user->id)
->orWhereIn('assigned_team_id', $teamIDs);
}
public function scopeNotRelativeTo($query, User $user)
{
$teamIDs = $user->teams->pluck('id');
$query->where('assigned_user_id', '!=', $user->id)
->orWhere('reported_by', '!=', $user->id)
->orWhereNotIn('assigned_team_id', $teamIDs);
}
. Они помогают построить запрос, основанный на возможных совпадениях, которые по существу сводятся к тому, имеет ли пользователь относительность к объекту.или нет.Они отлично подходят для запросов, но я также пытаюсь создать метод доступа в модели, который будет возвращать логическое значение, чтобы каждый объект динамически знал, что это относительность для аутентифицированного пользователя.Прекрасная идея, но не уверен, с чего начать.
public function getRelativityAttribute($value)
{
$user = User::find(auth('api')->user()->id);
}
С аутентифицированным пользователем и зная, что у меня есть доступ к фактическому классу: $this
, как я могу проверить относительность на основе этихте же проверки в областях и возвращают логическое значение?