Сущность ссылается на ту же сущность Symfony 3.3

(Я француз, извини, если ошибаюсь). Здравствуйте, я пытаюсь связать свою сущность (называемую «Evenement») с самим собой, потому что событие от 0 до X может быть связано с событием. У меня есть одна форма для добавления нового события (она работает нормально), и на той же странице я хочу иметь другую форму, чтобы связать событие, которое я выбираю, с текущим событием. Итак, в EvenementType у меня есть два конструктора (я не знаю, хорошее ли это решение, поэтому я прокомментировал второй конструктор и создал EvenementAssocieType.php с этим построителем).

Но когда я проверяю мероприятие (флажок используется для связывания мероприятия с другим), ничего не добавляется, и в профилировщике моя отправленная форма не отображается.

Вы можете найти мой код здесь: https://openclassrooms.com/forum/sujet/symfony-evenements-lies-a-un-evenement

Спасибо за вашу помощь !

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
236
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны создать отношения «многие ко многим» в своей сущности. Вот пример, найденный на веб-сайт доктрины, который вы можете адаптировать к своему коду:

<?php
/** @Entity */
class User
{
    // ...

    /**
     * Many Users have Many Users.
     * @ManyToMany(targetEntity = "User", mappedBy = "myFriends")
     */
    private $friendsWithMe;

    /**
     * Many Users have many Users.
     * @ManyToMany(targetEntity = "User", inversedBy = "friendsWithMe")
     * @JoinTable(name = "friends",
     *      joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
     *      inverseJoinColumns = {@JoinColumn(name = "friend_user_id", referencedColumnName = "id")}
     *      )
     */
    private $myFriends;

    public function __construct() {
        $this->friendsWithMe = new \Doctrine\Common\Collections\ArrayCollection();
        $this->myFriends = new \Doctrine\Common\Collections\ArrayCollection();
    }

    // ...
}

Спасибо за ответ, но в моем коде что-то не так, но я не знаю, что это ...

/**
 * ORM\@ManyToMany(targetEntity = "KeolisBundle\Entity\Evenement", mappedBy = "myEvents")
 * @ORM\JoinColumn(nullable=true)
 */
private $evenements;

/**
 * ORM\@ManyToMany(targetEntity = "KeolisBundle\Entity\Evenement", inversedBy = "evenements", cascade = {"persist"})
 * ORM\@JoinTable(name = "evenement_evenement",
 *      joinColumns = {@JoinColumn(name = "evenement_id", referencedColumnName = "id")},
 *      inverseJoinColumns = {@JoinColumn(name = "event_assoc_id", referencedColumnName = "id")}
 *      )
 */
private $myEvents;

Когда я создаю свои сущности, ничего не меняется (у меня в конструкторе есть myEvents). И когда я сбрасываю SQL-запрос, у меня появляется сообщение «ничего не обновлено».

Работает, 1 штуку в анкете забыл поменять!

Morgan Tartreau 26.03.2018 14:29

Другие вопросы по теме