Doctrine2。生成生命周期
问题描述:
Im使用YAML来描述实体元数据。就像这样:Doctrine2。生成生命周期
lifecycleCallbacks:
prePersist: [ doSome ]
preUpdate: [ doSome ]
生成的实体类如下所示:
/**
* @ORM\PrePersist
*/
public function doSome()
{
}
这是所有工作正常,但此标注 “@ORM” 困惑我。不应该是这样的:
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function doSome()
{
}
如何摆脱@ORM注释?
图元文件名为table.orm.yml。可能是这个原因的问题?但我不知道,这是怎么做的另一种方式。如果我命名文件像table.dcm.yml,我有异常,找不到元数据。
答
在生成类之后,您可以安全地删除注释和相应的use
语句。
命令
app/console doctrine:generate:entities
...只是一个小帮手创建类和/或getter/setter方法。
它并不总是100%准确。你不应该为此太多而烦恼。这只是一个帮手...
无论如何,你仍然需要自己编写回调函数。
+0
谢谢。但我认为这是一切都很好。 – user3359229
你的工作流程是什么?你先创建'Entity.orm.yml'映射文件,然后运行'app/console doctrine:generate:entities'吗?现在,您不希望在生成的类中使用生命周期事件注释或者有什么问题? – nifr
我在“src \ BundleName \ Resource \ config \ doctrine”文件夹中有文件“Entity.orm.yml”。运行命令“app/console doctrine:generate:entities”之后,我在src \ BundleName \ Entity中创建了Entity.php文件。就这样。 – user3359229
我想或者两者都添加注释(@ ORM/prePersist,@ ORM/preUpdate),或者他们根本就没有。 – user3359229