Как получить связанные объекты в JSON? - PullRequest
0 голосов
/ 03 июля 2019

Я создал три связанных объекта для опроса: Survey, Question и Options.

class Question 
{
    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Survey", inversedBy="questions")
     * @ORM\JoinColumn(nullable=true)
     */
    private $survey;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Options", mappedBy="Question")
     */
    private $options;
}

class Survey
{
    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Question", mappedBy="Survey")
     */
    private $questions;
}

class Options
{
    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Question", inversedBy="options")
     * @ORM\JoinColumn(nullable=true)
     */
    private $question;
}

Я могу сделать первый запрос для одного Survey объекта. Затем Doctrine выполняет второй запрос для получения связанных Question объектов.

public function showQuestions($id)
{
    $survey= $this->getDoctrine()
        ->getRepository(Survey::class)
        ->find($id);

    $questions = $survey->getQuestions();
}

Затем я могу сериализовать результат в json, используя symfony/serializer.

{
 "survey": [
  {
   "questions": [
    {
     "name": "question1",
     "options": []
    }
  }
 ]
}

Но я не получил Option сущность. Конечно, Options свойство объекта json пусто. Как я могу получить это?

...