如何将相关实体放入json?

时间:2019-07-03 19:34:01

标签: json symfony doctrine-orm doctrine symfony4

我为调查创建了三个相关实体:SurveyQuestionOptions

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();
}

然后我可以使用symfony/serializer将结果序列化为json。

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

但是我没有得到Option实体。当然Options json对象属性为空。我怎么能得到它?

0 个答案:

没有答案