doctrine2 symfony2关系实体

nasri_thamer

我有一个很大的问题。

1。我有一个FOS的用户类,我有一个Supervisor的注册表格,注册过程非常好。

2。每个主管都有他的交友,他也有一个添加个人的表格,该表格就像主管的注册一样,添加过程在主管类用户的同一类中。

->这样的主管和他的个人都在同一个班级。

现在的问题:

当主管登录时,我将如何选择他的“交友”,并且在同一表中?

意见建议:

1。我在具有2个父级和子级属性的同一个类User中执行ManyToOne和OneToMany,如下所示:

/**
 * @ORM\OneToMany(targetEntity="Common\AuthenticationBundle\Entity\User", mappedBy="parent")
 */
protected $childs;

public function __construct() {
    $this->childs = new ArrayCollection();
}

/**
 * @ORM\ManyToOne(targetEntity="Common\AuthenticationBundle\Entity\User", inversedBy="childs")
 * @ORM\JoinColumn(nullable=false)
 */
private $parent;

我不知道这是怎么工作的?

2。我创建了另一个Class SupervisorPersonal,当主管进行新个人添加时,我在其中放置了supervisor_id和personal_id。

这也存在与Doctrine映射的问题,2类和Doctrine如何进行密钥迁移之间有什么关系?

bit

实现此方案的理想方法是在User类上创建多对一关系。多对一关系将代表属于User类的许多个人,这些个人与单个主管(又属于同一User类)具有关系。

在yml config中,可以表示为

manyToOne:
supervisor:
  targetEntity: Common\AuthenticationBundle\Entity\User
  joinColumn:
    name: supervisor_id
    referencedColumnName: id

和注解

/**
 * @ManyToOne(targetEntity="Common\AuthenticationBundle\Entity\User")
 * @JoinColumn(name="supervisor_id", referencedColumnName="id")
 **/
private $supervisor;

要获得主管的所有个人信息,您将必须编写一个存储库函数,该函数将supervisorId作为参数。

public function getAllPersonslsForSupervisor($supervisorId)
{
    $em = $this->getEntityManager();

    $query = $em->createQuery("SELECT e FROM AuthenticationBundle:User e
         WHERE e.supervisor = :supervisor")
            ->setParameter('supervisor', $supervisorId);

    $entities = $query->getResult();

    return $entities;
}

您可能必须为查询中的实体提供正确的名称空间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony2 Doctrine2多对多将所有实体及其关系实体

来自分类Dev

Symfony2 Doctrine2多对多将所有实体及其关系实体

来自分类Dev

symfony2 doctrine2与实体的批处理错误

来自分类Dev

symfony2 doctrine2与实体的批处理错误

来自分类Dev

symfony2 doctrine2不刷新新实体

来自分类Dev

Symfony2,Doctrine2,实体映射

来自分类Dev

Symfony2实体与列的关系

来自分类Dev

Symfony2关系实体+形式

来自分类Dev

Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

来自分类Dev

symfony2 doctrine2:将select元素添加到现有实体

来自分类Dev

Symfony2 / Doctrine2:如何访问实体注释映射?

来自分类Dev

在Symfony2中将Doctrine2实体侦听器注册为服务

来自分类Dev

symfony2 doctrine2:删除在过去的迁移中使用的实体类

来自分类Dev

组,消息和位置之间的Symfony2 / Doctrine2数据库关系

来自分类Dev

Symfony2,Doctrine2,MySql,查看表

来自分类Dev

Symfony2 + Doctrine2中的CakePHP模型行为?

来自分类Dev

使用QueryBuilder的Symfony2 / Doctrine2 innerJoin

来自分类Dev

在Symfony2上的Doctrine2 YML映射

来自分类Dev

Symfony2 Doctrine2使用集合-表演

来自分类Dev

列的总和-Doctrine2 / Symfony2

来自分类Dev

Doctrine2实体ManyToOne关系属性的默认值

来自分类Dev

Doctrine2 NEW语法

来自分类Dev

Doctrine2 Paginator,getArrayResult

来自分类Dev

在Doctrine2中的间隔

来自分类Dev

Doctrine2多级继承

来自分类Dev

是否可以将存储在会话中的实体持久保存在Symfony2 + Doctrine2中?

来自分类Dev

Doctrine2 Symfony2扩展实体在不同的包中但具有相同的数据库表名称

来自分类Dev

COUNT = 0的Doctrine2 DQL问题

来自分类Dev

通过Doctrine2加入条件IN

Related 相关文章

热门标签

归档