У меня есть 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
Я не понимаю, почему метод документации работает неправильно. Как правильно решить мою проблему?