Symfony Doctrine связь ко многим

Чтобы реализовать связь один ко многим для доктирны Symfony, то я пользуюсь такой шпаргалкой. Допустим есть 2 Entity, Activities, и Events. Логическая связь между ними такая: в одном Активити есть много Эвентов.

Примеров можно привести кучу: в одной стране есть много городов, не важно. Вот часть с «Главной» энтити (Активити)

src/AppBundle/Entity/Activities.php

use Doctrine\Common\Collections\ArrayCollection;
..........
/**
 *
 * One Activity has Many Events.
 * @var int
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\Events", mappedBy="activity")
 */
private $events;


public function __construct() {
    $this->events = new ArrayCollection();
}

public function getEvents() {
    return $this->events;
}

 

а вот Entity для дочерней сущности:

src/AppBundle/Entity/Events.php

/**
 * Many Events have Activity.
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Activities", inversedBy="events")
 * @ORM\JoinColumn(name="activity_id", referencedColumnName="id")
 */
private $activity;

/**
 * @return mixed
 */
public function getActivity() {
    return $this->activity;
}

/**
 * @param $activity
 * @return $this
 */
public function setActivity($activity) {
    $this->activity = $activity;

    return $this;
}

не забываем прогнать обновление для самой базы:

php bin/console doctrine:schema:update --force

в итоге мы получаем удобную связь foreign key и при нажатии на стрелочку мы попадаем в сущность активити.

связь один ко многим для Symfony

Задавайте вопросы если что-то не понятно!