Один из способов сделать это - Область запросов .
Например:
public function scopeTeamLeader($query)
{
$role = Role::whereName('Team Leader')->first();
return $query->where('role_id', $role->id);
}
Для запроса пользователей, которые также являются лидерами команд, вы можете сделать что-то вроде этого
User::latest()
->TeamLeader()
->get();
Я бы также, вероятно, определил некоторый классконстанты в моем классе 'App \ Role'.Например.
class Role
{
const TEAM_LEADER = 1;
}
Затем можно очистить следующее:
public function scopeTeamLeader($query)
{
return $query->where('role_id', Role::TEAM_LEADER);
}
Очевидно, что это всего лишь личное предпочтение и оно не будет применимо везде, но я думаю, что это действительно улучшает читабельность итакже уменьшает ваш объем на 1 запрос:)