то, что я хочу, это просто, я хочу сгруппировать определенные поля запроса с помощью построителя запросов в 3 различных уровня взаимосвязи с псевдонимом, чтобы быть более понятным, у меня есть 3 связанные таблицы, консулта (медицинская консультация), пациент (пациент), доктор (доктор), усуарио (пользователь), поэтому со всем, что я получаю в своем запросе, является медицинская консультация с ее данными пациента, плюс данные доктора и с соответствующими данными пользователя, что я хочу, чтобы пропустить нерелевантные поля в этих связанныхтаблиц, я использую addSelect для включения всех данных между уровнями отношений, но я получаю все поля, я хочу получить конкретные поля таблицы "paciente" и пользовательскую таблицу (которая связана с пользователемдоктора), я покажу, как будет выглядеть схема:
Consulta :{
// omit the other fields
{paciente: name and last name}
{doctor: { usuario: name and last name}}}
$queryBuilder = $em->getRepository('MedicoBundle:Consulta')
->createQueryBuilder('e')
->leftJoin('e.paciente', 'a')
->addSelect('a')
->leftJoin('e.doctor', 'o')
->addSelect('o')
->leftJoin('o.usuario', 'u')
->addSelect('u')
->where('e.fecha =:fecha')
->orderBy('e.id', 'ASC')
->setParameter('fecha', $fecha)
->getQuery();
она извлекает все поля, что не так уж и плохо, но я хочу получить некоторые из них и пропустить другие, как показано всхема