У меня проблема с простыми следами красноречивых отношений. У него есть своего рода вложенный запрос, в котором используется модель FieldRole, которой я придерживаюсь неправильного шаблона. Если бы у меня был необработанный запрос, то он должен оцениваться как один запрос с использованием объединения ролей полей и его имени, но здесь он выполняет два запроса, которые, вероятно, не доступны для кэширования красноречивым ORM.
class Team extends Model {
// ...
public function goalkeepers() {
return $this->belongsToMany(
SoccerPlayer::class,
'team_has_players',
'id_teams',
'id_soccer_players'
)->where(
'id_field_role',
FieldRole::where(
'name',
'Goalkeeper'
)
->first()
->getKey()
);
}
}
Второй запрос там выставляется
FieldRole::where(
'name',
'Goalkeeper'
)
->first()
->getKey()
Есть ли способ сделать это как отношение одного запроса?