Symfony 条令-预更新调用但不调用';prePersist不更改相关实体属性
我对该理论有点陌生,我发现LifeCycleCallback非常有用,但当我实施时,我发现这一点不足: 我有一个Author->Book一对多关系,我将Symfony 条令-预更新调用但不调用';prePersist不更改相关实体属性,symfony,doctrine,lifecycle,Symfony,Doctrine,Lifecycle,我对该理论有点陌生,我发现LifeCycleCallback非常有用,但当我实施时,我发现这一点不足: 我有一个Author->Book一对多关系,我将prePersist和preUpdatelifecycellback事件放在Book实体中,以便可以更改Author实体上的属性。但我发现prePersist工作正常,但preUpdate无法对相关实体进行更改。我是否遗漏了某些内容,或者我是否应该注册相关实体财产的变更 注:我遵循以下规则 一些代码片段: 图书映射到作者和生命周期回调: <
prePersist
和preUpdate
lifecycellback
事件放在Book实体中,以便可以更改Author实体上的属性。但我发现prePersist工作正常,但preUpdate无法对相关实体进行更改。我是否遗漏了某些内容,或者我是否应该注册相关实体财产的变更
注:我遵循以下规则
一些代码片段:
图书映射到作者和生命周期回调:
<many-to-one field="author" target-entity="Author" inversed-by="books">
<join-columns>
<join-column name="author_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>
<lifecycle-callbacks>
<lifecycle-callback type="prePersist" method="prePersistAction" />
<lifecycle-callback type="preUpdate" method="preUpdateAction" />
</lifecycle-callbacks>
/**
* On prePersist Event.
*/
public function prePersistAction()
{
$this->name = 'Some new name here';
$this->author->setName('new Author name as per book');
}
/**
* On preUpdate Event.
*/
public function preUpdateAction()
{
$this->name = 'Some new name here';
$this->author->setName('new Author name as per book');
}
您应该发布一些代码,至少减少这两个实体的重要部分。我们无法想象你要做什么:)请看:@MartinRios,添加代码片段以供参考。谢谢。请阅读小字:。“此事件中不允许更改已更新实体的关联”。这有点让人难过,但D2事件通常不会像预期的那样工作,即使文档很清楚。
/**
* On prePersist Event.
*/
public function prePersistAction()
{
$this->name = 'Some new name here';
$this->author->setName('new Author name as per book');
}
/**
* On preUpdate Event.
*/
public function preUpdateAction()
{
$this->name = 'Some new name here';
$this->author->setName('new Author name as per book');
}