Как получить количество строк в базе данных по идентификатору?
SELECT count(*) FROM members;
Без проблем с производительностью. Как можно написать этот запрос с помощью entityManager?
Я использую php version 5.6 и symfony 3






Вы должны использовать свой EntityRepository Добавьте в него функцию и напишите примерно так:
$queryBuilder = $this->_em->createQueryBuilder()
->select('COUNT(e)')
->from('AppBundle:Entity', 'e');
return $queryBuilder->getQuery()->getSingleScalarResult();
Обновлено: только что увидел ответ Грегуара. Это будет работать. Однако, если у вас уже есть сущность, которая имеет отношение, и она инициализирована, приведенная ниже информация позволит вам получить эту информацию без дополнительного запроса к БД.
Вы можете использовать ассоциацию и получить ее из Коллекции (см. Работа с ассоциациями в документации
class SomeEntity
{
/**
* @var Collection|Member[]
*/
protected $members;
// other properties
// PHP >= 7 -> public function countMembers(): int
public function countMembers()
{
return $this->getMembers()->count();
}
// PHP >= 7 -> public function getMembers(): Collection
public function getMembers()
{
return $this->members;
}
// other getters/setters
}
Убраны строгие типы для PHP <7
Добавлено объявление функции строгих типов для геттеров (> = PHP 7) в качестве комментариев для иллюстрации (кому-то они могут понадобиться)
Я использую php 5.6.