orm - Doctrine ORM,多对多,延迟加载。检索实体并获取加入所有功能
问题描述
我有 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();
我不明白为什么文档的方法会出错。解决我的问题的正确方法是什么?
解决方案
推荐阅读
- php - PHPMailer 在点击提交按钮时将电子邮件发送到不同的地址和不同的正文
- ios - 使用LinkedinSwift的LinkedIn登录突然无法正常工作
- api - 是否可以按属性查找 Wikipedia ID,例如 Grid ID
- sql - 公共同义词_OracleSQL
- php - 对多维数组感到困惑我有一个数组,我想用新键生成新数组,时间戳为
- php - Sendinblue 附件
- amazon-web-services - 从公有弹性集群迁移到 VPC 集群
- javascript - 谷歌翻译小部件延迟显示在网页上
- amazon-s3 - 将名称包含斜杠的文件上传到 AWS S3 存储桶
- sql - 如何插入多个insert sql语句