Symfony3 Отношение «один-ко-многим» не работает

У меня есть Project и Files . Один проект может иметь несколько файлов, а один файл принадлежит только одному проекту. Вот как мои отношения сделаны

В сущности Files

  /** * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Project", inversedBy="files") * @ORM\JoinColumn(name="project_id", referencedColumnName="id") */ private $project; 

В объекте Project :

  /** * @var ArrayCollection * @ORM\OneToMany(targetEntity="AppBundle\Entity\Files", mappedBy="project") */ private $files; 

Вот как создается новый файл после его загрузки

 public function createFile($fileName,$project,User $user){ $file = new Files(); $file->setFilePath($this->targetDirectory."/".$fileName); $file->setFromUser($user->getType()); $file->setProject($project); $file->setDate(new \DateTime()); dump($file); $this->entityManager->persist($file); $this->entityManager->flush(); } 

Эта функция вызывается в ProjectController после очистки проекта (который дает ему ID, который затем я могу использовать для создания моего файла). Вот код

 $projectService->createProject($project, $user, $isWithoutTerm, self::NO_TERM_DEFAULT_VALUE); $filesService = $this->get('app.service.files_service'); foreach ($managerFiles as $managerFile) { $fileName = $filesService->uploadFileAndReturnName($managerFile,$this->getParameter('files_directory')); $filesService->createFile($fileName, $project, $user); } 

После того, как все установлено и выполнено, у меня есть проект и файлы. В таблице файлов я вижу, что project_id имеет идентификатор созданного проекта. Затем я пытаюсь получить из проекта все файлы, используя свойство files . В моем контроллере у меня есть dump(project->getFiles()); который до сих пор возвращает это введите описание изображения здесь

Несмотря на то, что у меня в файлах базы данных, у которых есть идентификатор проекта, мои files не заполнены файлами. Я полагаю, что моя ошибка в аннотациях, но я понятия не имею, как это исправить.

Отношения (по умолчанию) загружаются ленивыми в Doctrine. Значение: оно не извлекается из базы данных, пока вы не получите доступ к ней.

Попытайтесь пройти через getFiles. Вы увидите, что вы можете получить к ним доступ.

В чем разница между fetch = "EAGER" и fetch = "LAZY" в доктрине, включая дальнейшие ссылки в этом Top Answer to Doctrine, чтобы объяснить это дальше.