Php DQL子查询问题
我试图从一个表o中选择*,其中供应商就是我传递的内容。这是在一个条令存储库的上下文中。然后,我想运行一个子查询并从AppBundle:PriceOption中选择*,其中p.offer是o。运行此代码时,我收到一个QueryException:Php DQL子查询问题,php,mysql,symfony,doctrine-orm,doctrine,Php,Mysql,Symfony,Doctrine Orm,Doctrine,我试图从一个表o中选择*,其中供应商就是我传递的内容。这是在一个条令存储库的上下文中。然后,我想运行一个子查询并从AppBundle:PriceOption中选择*,其中p.offer是o。运行此代码时,我收到一个QueryException: public function getVendorFeaturedDeals(Vendor $vendor){ $purchaseOptions = $this-> getEntityManager() -&
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();
}
以下是错误:AppBundle\Tests\Service\VendorServiceTest::testGetVendorFeaturedDeals
条令\ORM\Query\QueryException:[语法错误]第0行,第18列:错误:条令导致意外的“发件人”\ORM\Query\QueryException:选择o,从AppBundle中选择:价格选项p内部连接p.offer o来自AppBundle\Entity\offer o其中o.vendor=:vendor
任何帮助都将不胜感激,谢谢 您应该将查询修改为:
$purchaseOptions = $this->
getEntityManager()
->createQueryBuilder()
->select(['p', 'o'])
->from('AppBundle:PriceOption', 'p')
->innerJoin('p.offer', 'o')
->getDQL();
你看到错误了吗?我指的是“从中选择”部分