Intereting Posts
Почему функции mysql_ PHP устарели? Можно ли прогнозировать rand (0,10) в PHP? Вставка вложенного массива JSON в качестве параметра в базе данных php mysql Чтение удаленного размера файла с использованием размера файла Отправка json на php-сервер с помощью jquery ajax – json error PHP-разработчик ищет решения, эквивалентные архитектуре Java EE Как установить параметры CURL при использовании запроса Kohana Как обслуживать документы из-за пределов сети через PHP? Удалять привязные ссылки / создавать цели в содержимом iframe Как отменить бит байта? Как я могу запрашивать сообщения и использовать атрибут orderby для заказов в цикле в соответствии с датой meta_value? Как включить расширение php с помощью `phpize`? Проверьте, не прошла ли данная дата Как заставить PHP установить код состояния HTTP на 500 автоматически в случае каких-либо ошибок? (включая те, которые не могут обрабатываться пользователем) Как установить значение POST для PHP на одной странице с помощью jQuery

Доктрина Symfony Многие для многих вставляют

У меня проблема с моими сущностями и контроллерами в Symfony. Я бы вставлял значение моей базы данных во множество таблиц.

Запросы Entity с множеством и многими элементами

class Requests { /** * @ORM\ManyToMany(targetEntity="Tipi", inversedBy="requests") * @ORM\JoinTable(name="tipi_richieste") */ private $tipi; public function __construct() { $this->tipi = new \Doctrine\Common\Collections\ArrayCollection(); } /** * Add tipi * * @param \AppBundle\Entity\Tipi $tipi * * @return Requests */ public function addTipi(\AppBundle\Entity\Tipi $tipi) { $this->tipi[] = $tipi; return $this; } /** * Remove tipi * * @param \AppBundle\Entity\Tipi $tipi */ public function removeTipi(\AppBundle\Entity\Tipi $tipi) { $this->tipi->removeElement($tipi); } /** * Get tipi * * @return \Doctrine\Common\Collections\Collection */ public function getTipi() { return $this->tipi; } } 

Entity Tipi с множеством элементов

  class Tipi { /** * @ORM\ManyToMany(targetEntity="Requests", mappedBy="tipi") */ private $requests; /** * Constructor */ public function __construct() { $this->requests = new \Doctrine\Common\Collections\ArrayCollection(); } /** * Add request * * @param \AppBundle\Entity\Requests $request * * @return Tipi */ public function addRequest(\AppBundle\Entity\Requests $request) { $this->requests[] = $request; return $this; } /** * Remove request * * @param \AppBundle\Entity\Requests $request */ public function removeRequest(\AppBundle\Entity\Requests $request) { $this->requests->removeElement($request); } /** * Get requests * * @return \Doctrine\Common\Collections\Collection */ public function getRequests() { return $this->requests; } } 

Тип формы для вставки – EntityType

 ->add('tipi', EntityType::class, array( 'label' => 'Tipo', 'class' => 'AppBundle:Tipi', 'mapped' => false, 'attr' => array('class' => 'form-control'), 'multiple' => true, 'by_reference' => false, 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('t'); }, )) 

И в моем контроллере я работаю таким образом:

 public function indexAction(Request $request) { $requests = new Requests(); $em = $this->getDoctrine()->getManager(); $form = $this->createForm(RequestsType::class, $requests); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $requests->setCreateAt(new \DateTime('now')); $request_tipi = $form["tipi"]->getData(); $tipi_array = []; die($form["tipi"]->getData()); $tipi_array = $em->getRepository('AppBundle:Tipi')->findOneBy(array('codice' => $form["tipi"]->getData())); $tipi = new Tipi(); $requests->addTipi($form["tipi"]->getData()); $em->persist($requests); $em->flush(); //return $this->redirectToRoute('immovable_edit', array('id' => $immovables->getId())); } return $this->render('AppBundle:Requests:index.html.twig', array( 'requests' => $requests, 'form' => $form->createView(), )); } 

Когда я положил die для возврата значение $form["tipi"]->getData() Я получаю массив массива:

 Doctrine\Common\Collections\ArrayCollection@000000005b52ae6b00000000731dd0b4 

Но я получаю эту ошибку

Catchable Fatal Error: аргумент 1, переданный в AppBundle \ Entity \ Requests :: addTipi () должен быть экземпляром AppBundle \ Entity \ Tipi, экземпляром Doctrine \ Common \ Collections \ ArrayCollection, указанным в C: \ xampp \ htdocs \ bugaro \ src \ AppBundle \ Controller \ RequestsController.php в строке 31 и определен

Related of "Доктрина Symfony Многие для многих вставляют"