2017-05-01 9 views
0

ベンダーが私が渡しているテーブルo(これはDoctrine Repositoryのコンテキストにあります)からSLECT *しようとしています。私は次にサブクエリを実行したいとSELECT * FROM AppBundle:PriceOptionここでp.offeroです。このコードを実行している場合でも、私はQueryExceptionを取得しています:DQLサブクエリの質問

public function getVendorFeaturedDeals(Vendor $vendor){ 
    $purchaseOptions = $this-> 
     getEntityManager() 
     ->createQueryBuilder() 
     ->from('AppBundle:PriceOption', 'p') 
      ->innerJoin('p.offer', 'o') 
     ->getDQL(); 


    $query = $this->createQueryBuilder('o'); 
    return $query 
     ->where('o.vendor = :vendor') 
     ->addSelect(sprintf('(%s)', $purchaseOptions)) 
     ->setParameter(':vendor', $vendor) 
     ->getQuery() 
     ->execute(); 
} 

はここでエラーです:Doctrine\ORM\Query\QueryException: SELECT o, (SELECT FROM AppBundle:PriceOption p INNER JOIN p.offer o) FROM AppBundle\Entity\Offer o WHERE o.vendor = :vendor

によって任意の助けを起こしAppBundle\Tests\Service\VendorServiceTest::testGetVendorFeaturedDeals Doctrine\ORM\Query\QueryException: [Syntax Error] line 0, col 18: Error: Unexpected 'FROM'は、おかげでいただければ幸いです!

+0

次のエラーを見たことがありますか?私は 'SELECT FROM'部分を意味します –

答えて

1

あなたはにあなたのクエリを変更する必要があります

$purchaseOptions = $this-> 
    getEntityManager() 
    ->createQueryBuilder() 
    ->select(['p', 'o']) 
    ->from('AppBundle:PriceOption', 'p') 
     ->innerJoin('p.offer', 'o') 
    ->getDQL();