Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro:PathExpression inválido. Deve ser um StateFieldPathExpression falhando na seleção de campo


Você precisa unir suas relações usando suas propriedades mapeadas, como para pesquisa, você precisa unir isso em seu objeto de construtor de consultas
$result = $qb->select(['csr.id','s']) // or add column names ['csr.id','s.id','s.title', ...]
              ->from('Entity\ClientSurveyRecord', 'csr')
              ->innerJoin('csr.survey','s')
              ->innerJoin('Entity\AbstractClientRecord','cr','WITH','cr.id = csr.id')
              ->innerJoin('Entity\Client','c','WITH','cr.client = c.id')
              ->where('s.id = :id_survey')
              ->setParameter('id_survey',$id)
              ->getQuery()
              ->getResult();

Também seria bom se você participasse de Entity\AbstractClientRecord e Entity\Client usando algumas propriedades mapeadas como você já fez para pesquisa, como
$result = $qb->select(['csr.id','s'])
              ->from('Entity\ClientSurveyRecord', 'csr')
              ->innerJoin('csr.survey','s')
              ->innerJoin('csr.abstractClientRecord','cr')
              ->innerJoin('cr.client','c')
              ->where('s.id = :id_survey')
              ->setParameter('id_survey',$id)
              ->getQuery()
              ->getResult();