如何用Symfony学说写子问



正在从事一个Symfony项目,并在教义中开发了后端&Api-Platform框架。我需要获取一些详细信息,并在另一个表中检查一个状态。我们使用此状态来处理前端。

我尝试了: -

$qb = $this->createQueryBuilder('contact');
$qb2=$qb;
$sub_query = $qb2->select('field')
    ->from('OtherTable','g')
    ->where("'id= '".$personId."'")
    ->OrderBy('updated_at', 'DESC')
    ->setMaxResults(1)
    ->getQuery()
    ->getResult();
$qb->select("contact.id, 
                contact.title, 
                count (distinct person.id) as 
number_of_contacts_with_email',(".$sub_query.") as status")
 ->leftjoin('contact.people', 'person')
 ->leftJoin('person.jobs', 'jobs')
 ->groupBy('contact.id, contact.title');

$query=$qb->getQuery();
$result = $qb->getQuery()->getArrayResult();
return $result;

执行查询时会遇到此错误。

  [Semantical Error] line 0, col 59 near 'OtherTable g': Error: Class 'OtherTable' is not defined.

如何在这里写下此子查询?有什么解决方案吗?

您应该简单地使用子查询的DQL,例如:

// Don't take the query/result instances
$sub_query = $qb2->select('field')
    ->from('OtherTable','g')
    ->where("'id= '".$personId."'")
    ->OrderBy('updated_at', 'DESC')
    ->setMaxResults(1);

并使用

$qb->select("contact.id, 
                contact.title, 
                count (distinct person.id) as 
number_of_contacts_with_email',(".$sub_query->getDQL().") as status")
 ->leftjoin('contact.people', 'person')
 ->leftJoin('person.jobs', 'jobs')
 ->groupBy('contact.id, contact.title');

希望此帮助

相关内容

  • 没有找到相关文章

最新更新