Mam relację wiele do wielu, a kiedy ładuję obiekt, który jest po jednej stronie tej relacji, spodziewam się widzieć jej własność ArrayCollection powiązanych podmiotów po drugiej stronie. Jednak tak się nie dzieje - załadowana ArrayCollection nie zawiera żadnych elementów, podczas gdy w bazie danych widzę odpowiednie wpisy. Jaki mógł być powód?Symfony2: Doctrine nie ładuje powiązanych obiektów w relacjach wiele do wielu.
Oto mój kod:
Jedna strona relacji, ConsolidatedReport klasa:
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="P24\Response", inversedBy="consolidatedReports")
* @ORM\JoinTable(name="con_rprt_responses")
*/
private $responses;
Inną stroną stosunku, klasa reakcji:
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="P24\ConsolidatedReport\ConsolidatedReport", mappedBy="responses")
*/
private $consolidatedReports;
Oto funkcja biegnę do uzyskać instancję ConsolidatedReport. Funkcja ta znajduje się wewnątrz usługi, która jest wywołana z pojemnikiem:
/**
* 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;
}'
w bazie danych, istnieje „con_rprt_responses” stół z dwoma kolumnami „consolidated_reports_id” i „RESPONSE_ID”. Jednak w profilera nie widzę żadnych zapytań do tej tabeli.
Co może pójść nie tak?
UPDATE: Proszę zobaczyć moją odpowiedź na to pytanie poniżej, że pracował dla mnie.
W profilu, nie widzę żadnych zapytań do tabeli "con_rpt_responses". – Vasily802