Doctrine 在理论上如何通过qb连接?

Doctrine 在理论上如何通过qb连接?,doctrine,Doctrine,我想在if条件中向查询添加联接,但它返回了一个错误。 我们如何在教义中做到这一点? 有没有这样的东西: $qb->andWhere('p.$gender=:g')->setParameter('g',$gender); 加入学说symfony $qb->select("p")->from("PfmSanadBundle:Person", "p"); if ((isset($province) && trim($province) !== '') &a

我想在if条件中向查询添加联接,但它返回了一个错误。 我们如何在教义中做到这一点? 有没有这样的东西: $qb->andWhere('p.$gender=:g')->setParameter('g',$gender); 加入学说symfony

   $qb->select("p")->from("PfmSanadBundle:Person",  "p");

    if ((isset($province) && trim($province) !== '') && (isset($City) && trim($City) !== '')){
        $qb->join("p" ,"students", "ps")
            ->join("ps" ,"organization", "po")
            ->join("po" ,"cityProvince", "pc")
            ->join("pc" ,"province", "pp");
    }
   if ((isset($province) && trim($province) !== '') && !isset($City)) {
        $qb->join("p.students", "ps")
            ->join("ps.organization", "po");
    }
    $res = $qb->getQuery()->getArrayResult();
错误(邮递员):

“错误”:{ “代码”:500, “消息”:“内部服务器错误”, “例外情况”:[ { “消息”:“[Semantic Error]第0行,第49列靠近'p students INNER':错误:未定义类'p'。”, “类”:“条令\ORM\Query\QueryException”, “跟踪”:[ {


联接方法的用法如下

// Example - $qb->join('u.Group', 'g', Expr\Join::WITH, $qb->expr()->eq('u.status_id', '?1'))
// Example - $qb->join('u.Group', 'g', 'WITH', 'u.status = ?1')
// Example - $qb->join('u.Group', 'g', 'WITH', 'u.status = ?1', 'g.id')
public function join($join, $alias, $conditionType = null, $condition = null, $indexBy = null);
因此,

$qb->join("p" ,"students", "ps")
    ->join("ps" ,"organization", "po")
    ->join("po" ,"cityProvince", "pc")
    ->join("pc" ,"province", "pp");
改为

$qb->join("p.students", "ps")
    ->join("ps.organization", "po")
    ->join("po.cityProvince", "pc")
    ->join("pc.province", "pp");

谢谢,现在一切都好了!