Я хочу отредактировать свою сущность «Категория» на основе идентификатора теста в форме в Twig и привязать ее к базе данных, когда я открываю свое редактирование, мне отображаются формы, которые я редактирую, но они не привязывают тест идентификатора к базе данных, я не могу понять почему, возможно, я что-то написал неправильно

Класс
DefaultController расширяет контроллер { функция editAction($id) { $em = $this->getDoctrine()->getEntityManager(); $test = $em->getRepository('LadelaOdeskTesterBundle:Test')->find($id); если (!$test) { throw $this->createNotFoundException('Невозможно найти объект рекламодателя.'); } возвращаемый массив( 'тест' => $тест, ); } /** * @Route("/new/{id}/update", name="test.update", требования={"id" = "\d+"}) * @Method("Сообщение") * @Template("LadelaOdeskTesterBundle:Default:edit.html.twig") */ публичная функция updateAction($id) {
$test = $this->getDoctrine()->getRepository('LadelaOdeskTesterBundle:Test')->find($id); если (!$test) { throw $this->createNotFoundException('Невозможно найти тестовый объект.'); } $ успех = 0; $categoryList = array_map('trim', $this->getRequest()->get('category-new')); $currentCats = $test->getCategories(); Еогеасп ($currentCats как $current){ $test->removeCategorie($current); } $em = $this->getDoctrine()->getEntityManager(); foreach ($categoryList как $category) { если (!empty($category)) { $categoryName = новая категория(); $categoryName->setName($category); $categoryName->setTest($test); $test->addCategorie($categoryName); $em->persist($categoryName); $success = 'Категория'. $категория . ' был создан'; } } $em->flush(); return $this->redirect($this->generateUrl('test.edit',array('id' => $id))); возвращаемый массив( 'тест' => $тест, ); } } мой файл ветки:
{% расширяет '::base.html.twig' %} {% тело блока %} {##} Изменить тест {% для теста в тестах %} Категория 1 Категория 2
Категория 3
Категория 4
Категория 5
Категория 6
Категория 7
Категория 8
Категория 9
{% конец для %} Вернуться к тесту {##} {% конечный блок %} {% блокировать JavaScript %} {{ родитель() }} {% конечный блок %} Сущность категории:
Категория класса { /** * @var целое число $id * * @ORM\Column(name="id", type="integer") * @ORM\Идентификатор * @ORM\GeneratedValue(strategy="АВТО") */ частный $id; /** * @var строка $имя * * @ORM\Column(name="name", type="string", length=255) */ личное $имя; /** * @var строка $color * * @ORM\Column(name="color", type="string", length=255) */ частный $color; /** * @var Категория категории * * @ORM\ManyToOne(targetEntity="Test",inversedBy="categories") * @ORM\JoinColumn(name="test_id", referencedColumnName="id") * */ защищенный $test; публичная функция __construct() { $this->color = 'rgb(255,255,0)'; } /** * Получить идентификатор * * @return целое число */ публичная функция getId() { вернуть $this->id; } /** * Имя набора * * @param строка $имя * @return Категория */ общедоступная функция setName($name) { $this->name = $name; вернуть $это; } /** * Получить имя * * @return строка */ публичная функция getName() { вернуть $this->name; } /** * Установить цвет * * @param строка $color * @return Категория */ публичная функция setColor($color) { $this->color = $color; вернуть $это; } /** * Получить цвет * * @return строка */ публичная функция getColor() { вернуть $this->color; } /** * Установить тест * * @param Ladela\OdeskTesterBundle\Entity\Test $test * @return Категория */ общедоступная функция setTest(\Ladela\OdeskTesterBundle\Entity\Test $test) { $this->test = $test; вернуть $это; } /** * Пройти тест * * @return Ladela\OdeskTesterBundle\Entity\Test */ публичная функция getTest() { вернуть $this->test; } } Тестовый объект:
Тест класса { /** * @var целое число $id * * @ORM\Column(name="id", type="integer") * @ORM\Идентификатор * @ORM\GeneratedValue(strategy="АВТО") */ частный $id; /** * @var строка $имя * * @ORM\Column(name="name", type="string", length=255) */ личное $имя; /** * @var \DateTime $created_at * * @Gedmo\Timestampable(on="create") * @ORM\Column(name="created_at", type="datetime") */ частный $created_at; /** * @Gedmo\Slug(fields={"name"}) * @ORM\Column(длина=128,уникальный=true) */ частный $слизень; /** * @ORM\ManyToMany(targetEntity="Вопрос") * @ORM\JoinTable(name="test_questions", * joinColumns={@ORM\JoinColumn(name="test_id", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="question_id", referencedColumnName="id")} * ) * @var Коллекция $questions **/ защищенные $вопросы; /** * @ORM\ManyToMany(targetEntity="Результат") * @ORM\JoinTable(name="test_results", * joinColumns={@ORM\JoinColumn(name="test_id", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="result_id", referencedColumnName="id")} * ) * @var Коллекция $results **/ защищенные $результаты; /** * @ORM\OneToMany(targetEntity="Категория", mappedBy="test") */ частные $категории; /** * @var \DateTime $updated_at * * @Gedmo\Timestampable(on="update") * @ORM\Column(name="updated_at", тип="датавремя") */ частный $updated_at; публичная функция __construct() { $this->questions = new \Doctrine\Common\Collections\ArrayCollection(); $this->categories = new \Doctrine\Common\Collections\ArrayCollection(); } /** * Получить идентификатор * * @return целое число */ публичная функция getId() { вернуть $this->id; } /** * Имя набора * * @param строка $имя * @return Тест */ общедоступная функция setName($name) { $this->name = $name; вернуть $это; } публичная функция getSlug() { вернуть $this->slug; } /** * Получить имя * * @return строка */ публичная функция getName() { вернуть $this->name; } /** * Установить созданный_at * * @param \DateTime $createdAt * @return Тест */ публичная функция setCreatedAt($createdAt) { $this->created_at = $createdAt; вернуть $это; } /** * Получить созданный_at * * @return \DateTime */ публичная функция getCreatedAt() { верните $this->created_at; } /** * Установить обновленный_at * * @param \DateTime $updatedAt * @return Тест */ публичная функция setUpdatedAt($updatedAt) { $this->updated_at = $updatedAt; вернуть $это; } /** * Получить обновление_на * * @return \DateTime */ публичная функция getUpdatedAt() { верните $this->updated_at; } /** * */ публичная функция getQuestions() { вернуть $this->вопросы; } публичная функция addQuestion(Вопрос $question) { $this->questions[] = $question; } /** * Установить пулю * * @param строка $slug * @return Тест */ публичная функция setSlug($slug) { $this->слизняк = $слизняк; вернуть $это; } /** * Удалить вопросы * * @param Вопрос $questions */ публичная функция RemoveQuestion(Вопрос $questions) { $this->questions->removeElement($questions); } /** * Добавить результаты * * @param Результат $results * @return Тест */ общедоступная функция addResult (результат $results) { $this->results[] = $results; вернуть $это; } /** * Удалить результаты * * @param Результат $results */ публичная функция RemoveResult (Результат $results) { $this->results->removeElement($results); } /** * Получить результаты * * Коллекция @return */ публичная функция getResults() { вернуть $this->results; } публичная функция countResults() { вернуть $this->results->count(); } публичная функция countQuestions() { вернуть $this->questions->count(); } /** * Добавить категории * * @param Ladela\OdeskTesterBundle\Entity\Category $categories * @return Тест */ общедоступная функция addCategorie(\Ladela\OdeskTesterBundle\Entity\Category $categories) { $this->categories[] = $categories; вернуть $это; } /** * Удаление категорий * * @param Ladela\OdeskTesterBundle\Entity\Category $categories */ публичная функция RemoveCategorie(\Ladela\OdeskTesterBundle\Entity\Category $categories) { $this->categories->removeElement($categories); } /** * Получить категории * * @return Doctrine\Common\Collections\Collection */ публичная функция getCategories() { вернуть $this->категории; } }