Ho una relazione molti-a-molti, e quando carico un'entità che è da un lato questa relazione, mi aspetto di vedere come sua proprietà l'ArrayCollection di entità correlate su un altro lato. Tuttavia, questo non accade - l'ArrayCollection caricato non ha elementi in esso, mentre nel database posso vedere le voci correlate. Quale potrebbe essere la ragione?Symfony2: Doctrine non carica le entità correlate in relazione molti-a-molti
Ecco il mio codice:
Un lato del rapporto, classe ConsolidatedReport:
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="P24\Response", inversedBy="consolidatedReports")
* @ORM\JoinTable(name="con_rprt_responses")
*/
private $responses;
Un altro lato del rapporto, classe Response:
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="P24\ConsolidatedReport\ConsolidatedReport", mappedBy="responses")
*/
private $consolidatedReports;
Ecco la funzione corro a ottenere un'istanza di ConsolidatedReport. Questa funzione trova all'interno di un servizio che viene chiamato dal contenitore:
/**
* Picks the consolidated report with given id.
*
* @param string $id
*
* @return ConsolidatedReport
*
* @throws NonExistentConsolidatedReportException if the survey doesn't exist
*/
public function pick($id)
{
$report = $this->repository->findOneBy(array('id' => $id));
if (!$report) {
throw new NonExistentConsolidatedReportException($id);
}
return $report;
}'
Nel database, c'è tabella "con_rprt_responses" con due colonne "consolidated_reports_id" e "RESPONSE_ID". Tuttavia, nel profiler non vedo alcuna query per quella tabella.
Cosa potrebbe andare storto qui?
UPDATE: Si prega di vedere la mia risposta a questa domanda di seguito, che ha funzionato per me.
Nel profiler, non vedo alcuna query sulla tabella "con_rpt_responses". – Vasily802