더 나은 해결책은 PDO:FETCH_COLUMN
. 이렇게하려면 맞춤형 하이드 레이터가 필요합니다.
//MyProject/Hydrators/ColumnHydrator.php
namespace DoctrineExtensions\Hydrators\Mysql;
use Doctrine\ORM\Internal\Hydration\AbstractHydrator, PDO;
class ColumnHydrator extends AbstractHydrator
{
protected function hydrateAllData()
{
return $this->_stmt->fetchAll(PDO::FETCH_COLUMN);
}
}
그것을 교리에 추가하십시오 :
$em->getConfiguration()->addCustomHydrationMode('COLUMN_HYDRATOR', 'MyProject\Hydrators\ColumnHydrator');
다음과 같이 사용할 수 있습니다.
$em->createQuery("SELECT a.id FROM Auction a")->getResult("COLUMN_HYDRATOR");
추가 정보 :
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#custom-hydration-modes