尝试从名称空间“ DS \ ApiBundle \ Command \ Expr”中加载类“ Join”

时间:2018-11-27 07:13:27

标签: symfony left-join

我正在尝试在symfony中加入两个表。这给了我以下错误:

  

Symfony \ Component \ Debug \ Exception \ ClassNotFoundException]
  尝试从名称空间加载类“ Join”   “ DS \ ApiBundle \ Command \ Expr”。您是否忘记了“使用”声明   例如“ Doctrine \ ORM \ Query \ AST \ Join”还是“ Doctrine \ ORM \ Query \ Expr \ Join”?

我的代码在下面:

 $student = $this->schoolManager->createQueryBuilder('s')                      
    ->leftJoin('s.schoolId', 'm', Expr\Join::ON ,'s.schoolId = m.school')        
    ->getQuery();

每所学校都有成员。

1 个答案:

答案 0 :(得分:1)

欢迎来到论坛。

您可以通过以下方法解决此错误:a)仅使用联接表达式的字符串表示形式:

$student = $this->schoolManager->createQueryBuilder('s')                      
    ->leftJoin('s.schoolId', 'm', 'ON' ,'s.schoolId = m.school')        
    ->getQuery();

of by b)包括相关教义类的使用声明(在课程开始时)

use Doctrine\ORM\Query\Expr;

...

$student = $this->schoolManager->createQueryBuilder('s')                      
    ->leftJoin('s.schoolId', 'm', Expr\Join::ON ,'s.schoolId = m.school')        
    ->getQuery();