Doctrine ORM, многие ко многим, ленивая загрузка. Получить сущность и получить присоединиться ко всем функциям - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть Zend Framework 3 + Doctrine приложение ORM.

   Class Goods have link "characters":

    /**
     * Goods
     *
     * @ORM\Entity
     * @ORM\Table(name="goods")
     * @property int $id
     */
    class Goods implements InputFilterAwareInterface
    {
          /**
     * @ORM\ManyToMany(targetEntity="\Application\Entity\CharacterValue", inversedBy="goods")
     * @ORM\JoinTable(name="character_value_item",
     *   joinColumns={@ORM\JoinColumn(name="good_id", referencedColumnName="id")},
     *   inverseJoinColumns={@ORM\JoinColumn(name="value_id", referencedColumnName="id")})
     **/

       protected $characters;

   public function getCharacters()
   {
      return $this->characters;
   }
  }

Я пытаюсь использовать этот метод для получения символов методом отложенной загрузки, но он возвращает только один символ. Не все символы для продукта.

$dql = 'SELECT u, ch FROM Goods u LEFT JOIN u.characters ch';

Этот метод отсюда:

$query = $em->createQuery('SELECT u, p FROM CmsUser u JOIN u.phonenumbers p');
$users = $query->getResult(); // array of CmsUser objects with the phonenumbers association loaded
$phonenumbers = $users[0]->getPhonenumbers();

https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/dql-doctrine-query-language.html#dql -select-examples

Я не понимаю, почему метод документации работает неправильно. Как правильно решить мою проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...