Doctrine-ORM-使用关联的entityManager获取所有数据



我有两个实体user1和skills,其中一个用户将拥有许多技能。

/** @Entity **/
class user1 {
    /** @Id @Column(type="integer") @GeneratedValue **/
    public $id;
    /** @Column(type="string") **/
    public $name;
    /**
     * 
     * @OneToMany(targetEntity="skills", mappedBy="uid")
     */
    public $skillset;
}
/** @Entity **/
class skills {        
    /** @Id @Column(type="integer") @GeneratedValue **/
    public $id;
    /** @Column(type="string") **/
    public $skill;
    /**
     * @ManyToOne(targetEntity="user1", inversedBy="skillset")
     **/
    public $uid;
}

但我想使用entityManager和类似的getrepository获取所有记录

$usr= $entityManager->getRepository("user1")->findAll();  

但它只提供了表"user1"中的数据。我无法从与特定用户相关的"技能"中获取数据。

"uid"是"user1"表中"id"的"skills"表中的外键。

我认为您可能更喜欢ManyToMany关系,因为许多用户将拥有许多技能。

这样就不必将字段称为ID,ORM的目的是隐藏对象关系下的关系结构:$uid字段应该被称为$user

也就是说,你的语法是正确的——你确定你的数据库模式与实体同步吗?你有正确的数据吗?如果你var_dump是一个单一用户,你会得到什么?

相关内容

  • 没有找到相关文章

最新更新