Symfony2:获取持久化对象的 id
Posted
技术标签:
【中文标题】Symfony2:获取持久化对象的 id【英文标题】:Symfony2: get the id of the persisted object 【发布时间】:2012-10-08 18:34:56 【问题描述】:我有两个实体:用户和个人。
在实体用户中,我需要关联人的 id:user_id。
当我创建新用户时,我必须先创建人,然后再创建用户。 在用户中,我必须输入相应人员的 id,为此我需要获取持久对象 person 的 id,这是一个自动增量。
是否可以通过以下方式获取对象的id:
$em->persist($person);
$em->flush();
我该怎么做?
另一种方法是在 Person 表中搜索最大的 id 并取这个,但我认为应该有一种更好、更简单的方法来获取持久对象的 id。
以php为例,当我执行时
$articleID = $_DB->queryRaw((....);
我得到这样的 id。
【问题讨论】:
【参考方案1】:Symfony2 with Doctrine默认ORM会在数据存入数据库后自动生成一个ID。所以你可以通过->getId()
调用ID
$id = $person->getId();
【讨论】:
谢谢@HHabibillah,这行得通。唯一的一点:php中没有var,只有$id = $person->getId();如果您可以对此进行编辑,我会接受您的回答。 感谢您的指正。我已经编辑为正确的语法。 谢谢,我会在 1 小时内接受答案,我现在有发射休息时间。 你好@Habibillah,如果我只使用 $em->persist($person); 我可以使用 getId() 获取 id; ?我还没有使用flush方法,但我想要$person实体对象的id(对于这个例子:)) @AshishShah 是的,但请尝试一下自己以上是关于Symfony2:获取持久化对象的 id的主要内容,如果未能解决你的问题,请参考以下文章