Я создал три связанных объекта для опроса: 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 пусто. Как я могу получить это?