Я пытаюсь построить запрос с 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 объединения с одной и той же таблицей.
Есть ли способ передать эти псевдонимы из функции в функцию?чтобы я мог повторно использовать соединение?