Je veux savoir quelles maladies professionnelles sont incluses dans tous les dossiers médicaux d'une unité de production de l'entreprise. L'entité MedicalRecord a beaucoup à plusieurs avec DiseaseTypology comme suit:Comment interroger le côté inverse d'une relation de plusieurs à plusieurs avec Doctrine
/**
* AppBundle\Entity\HealthData\MedicalRecord
*
* @ORM\Table(name="medical_record")
* @ORM\Entity(repositoryClass="MedicalRecordRepository")
* @ORM\HasLifecycleCallbacks
*/
class MedicalRecord
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $companyProductionUnitId
*
* @ORM\Column(name="company_production_unit_id", type="integer",nullable=true)
*/
protected $companyProductionUnitId;
/**
* @var ArrayCollection $professionalDiseases
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\HealthData\Core\DiseaseTypology")
* @ORM\JoinTable(name="medical_record_professional_disease",
* joinColumns={@ORM\JoinColumn(name="medical_record_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="professional_disease_id", referencedColumnName="id")}
* )
*
*/
protected $professionalDiseases;
Dans la classe MedicalRecordReposity j'ai créé la méthode suivante:
public function getProfessionalDiseasesByProductionUnit($productionUnitId)
{
$em = $this->getEntityManager();
$repository = $em->getRepository('AppBundle:MedicalRecord');
return $repository->createQueryBuilder('m')
->select('m.professionalDiseases')
->where('m.companyProductionUnitId = :productionUnitId')
->setParameter('productionUnitId', $productionUnitId)
->getQuery()
->getArrayResult();
}
Mais je reçois l'erreur:
[Semantical Error] line 0, col 9 near 'professionalDiseases': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
Comment interroger le côté inverse d'une relation plusieurs à plusieurs? Je vous remercie!
Peut-être ces [réponse 1] (https: // stackoverflow .com/questions/22666692/invalid-pathexpression-doit-être-un-statefieldpathexpression-in-query-builder-wi) et [réponse 2] (https://stackoverflow.com/questions/34408073/error-invalid-pathexpression -must-be-a-statefieldpathexpression) peut vous aider à améliorer votre question, ou y répondre. – nicof