Этот вопрос задал мне сегодня, мои репозитории всегда должны возвращать полные объекты? Они не могут вернуть частичные данные (например, в массиве)?
Например, у меня есть метод getUserFriends(User $user)
внутри моего репозитория Friends
, в этом методе я выполняю следующий DQL:
$dql = 'SELECT userFriend FROM Entities\User\Friend f JOIN f.friend userFriend WHERE f.user = ?0';
Но так я возвращаю сущности пользователей, содержащие все свойства, сгенерированный SQL - это SELECT всех полей из таблицы User. Но, скажем, мне просто нужен идентификатор и имя пользователя, друзья, было бы более интересно (и быстро) получить только эти значения?
$dql = 'SELECT userFriend.id, userFriend.name FROM Entities\User\Friend f JOIN f.friend userFriend WHERE f.user = ?0';
Эти методы выполняются в моем классе обслуживания.