Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur :PathExpression non valide. Doit être un StateFieldPathExpression défaillant lors de la sélection du champ

Vous devez joindre vos relations en utilisant leurs propriétés mappées comme pour l'enquête, vous devez joindre ceci dans votre objet de générateur de requête

$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();

De plus, ce serait bien si vous rejoigniez Entity\AbstractClientRecord et Entity\Client en utilisant certaines propriétés mappées comme vous l'avez déjà fait pour survey , comme

$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();