Как запросить другую сущность в repositoty?

Всем привет

1) Есть сущность Room, к ней есть RoomRepository (где мы пишем все запросы итд).
2) Есть сущеность Door, к ней есть DoorRepository (где мы пишем все запросы итд).

Как мне в RoomRepository сделать joint с сущность Door? Как мне её туда передать?
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ответы на вопрос 1
Decadal
@Decadal
$qb = $this->createQueryBuilder('room')
            ->join('room.doors', 'd')  
        return $qb->getQuery()->getResult();


в чем собственно проблема?
В сущности Room должна быть описана связь с сущностью Door.
Поле должно называться doors
тип связи - один ко многим
тип самого поля - Collection

вот вам пример:
/**
     * @var \Doctrine\Common\Collections\Collection
     * @ORM\OneToMany(targetEntity="Applications\Entity\Offer", mappedBy="application", cascade={"persist"})
     */
    private $offers;


Это поле у сущности Application (заявка).
обращаемся: $application->getOffers();
у сущности Applications\Entity\Offer есть поле application:

/**
     * @ORM\ManyToOne(targetEntity="Applications\Entity\Application", inversedBy="offers")
     * @ORM\JoinColumn(name="application_id", referencedColumnName="id", nullable=true, onDelete="CASCADE")
     */
    private $application;


обращаемся: $offer->getApplication();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы