Даны три сущности Doctrine.
Ответы на вопросы анкеты Answer
:
/**
* @ORM\Entity(repositoryClass="App\Repository\AnswerRepository")
*/
class Answer
{
/**
* @Groups({"answer"})
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $text;
/**
* @Groups({"answer"})
* @ORM\Column(type="integer", nullable=true)
*/
private $num;
/**
* @Groups({"answer"})
* @ORM\Column(type="boolean", nullable=true)
*/
private $yn;
/**
* @Groups({"answer"})
* @ORM\ManyToMany(targetEntity="App\Entity\Question", inversedBy="answers")
*/
private $question;
/**
* @Groups({"answer"})
* @ORM\ManyToMany(targetEntity="App\Entity\Options", inversedBy="answers")
*/
private $options;
// ...
}
Варианты ответов на вопросы анкеты Options
:
class Options
{
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Answer", mappedBy="options")
*/
private $answers;
// ...
}
И сущность Question
с вопросами анкеты.
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Answer", mappedBy="question")
*/
private $answers;
POST-запрос:
{
"text": [
"text",
"another text"
],
"num": [
"",
"1"
],
"yn": [
"",
"1"
],
"options": [
"3",
"2",
"1"
],
"question": [
"1",
"2"
]
}
Форма:
$answer = new Answer();
$builder
->add('text')
->add('num')
->add('yn')
->add('question')
->add('options')
;
Модель БД:
Поля
num
,
yn
и
text
нужны для ответа на вопрос в случае, если заранее ответ не подготовлен (
<input type="text">
).
Options
и
Question
- есть связь. Поля
num
,
yn
и
text
(нет привязки к
options
) - связи нет. Как их связать с вопросами и ответами? Сейчас они просто складываются в таблицу
Answer
.