Symfony dql не пропускает псевдонимы из соединений между функциями - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь построить запрос с DQL, который разделен на несколько функций, поэтому я могу снова и снова использовать эти функции для разных запросов.

Пока это работало отлично, пока мне не понадобилосьчтобы повторно использовать псевдоним из объединения

Допустим, у меня есть две функции:

public function addEquipmentSubType(QueryBuilder $builder): QueryBuilder
{
  return $builder
    ->andWhere(est.code = :code) 
    ->leftJoin('q.equipmentSubType', 'est')
    ->addSelect('est')
    ->setParameter('code', '123');
}

, а затем эта:

public function search(QueryBuilder $builder): QueryBuilder
{
  return $builder
    ->andWhere('q.projectNumber LIKE :search OR est.name LIKE :search')
}

Это вызывает ошибкуПоговорка «есть» не определена.Кажется, что единственный способ исправить это, это снова присоединиться к equipmentSubtype, но это приводит к тому, что в конечном запросе есть 2 объединения с одной и той же таблицей.

Есть ли способ передать эти псевдонимы из функции в функцию?чтобы я мог повторно использовать соединение?

...