Symfony 2默认值为多对多

时间:2014-09-30 20:09:22

标签: symfony doctrine-orm entity

我和很多人的关系都没什么问题。 我想在创建用户时设置默认实体。

例如我有两个实体。 用户和项目(用户可以有很多项目,项目可以有很多用户)

在我的数据库中,我有ID = 1的项目;

现在,当我创建新用户并且我没有选择任何项目时,我想在我的用户实体中检查它。我不知道如何获得项目类的实例,其中id = 1?

我是否需要学说经理或类似的东西? 有人能帮助我吗?

我想在没有控制器的实体中做到这一点。

  

for PrePersist活动

但是如何在用户实体中获得id = 1的instanceof项目?

1 个答案:

答案 0 :(得分:0)

使用PrePersist

/**
 * @ORM\PrePersist()
 */
public function prePersist(LifecycleEventArgs $args) {
    $em = $args->getEntityManager();
    $entity = $args->getEntity(); //User entity
    if ($entity->getProject() == NULL) { //this would check if Project is empty, meaning no project was selected upon creation of the user and associate project with id = 1
        $project = $em->getRepository('YourBundle:Project')->find(1); //Project Entity
        $entity->setProject($project);
    }
}