Попытка загрузить класс "Join" из пространства имен "DS \ ApiBundle \ Command \ Expr" - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь объединить две таблицы в 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 голосов
/ 27 ноября 2018

добро пожаловать на форум.

Вы можете исправить эту ошибку а) просто используя строковое представление выражения объединения:

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

из б) включая оператор использования длясоответствующий класс доктрины (в начале вашего класса)

use Doctrine\ORM\Query\Expr;

...

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