Symfony 条令-预更新调用但不调用';prePersist不更改相关实体属性

Symfony 条令-预更新调用但不调用';prePersist不更改相关实体属性,symfony,doctrine,lifecycle,Symfony,Doctrine,Lifecycle,我对该理论有点陌生,我发现LifeCycleCallback非常有用,但当我实施时,我发现这一点不足: 我有一个Author->Book一对多关系,我将prePersist和preUpdatelifecycellback事件放在Book实体中,以便可以更改Author实体上的属性。但我发现prePersist工作正常,但preUpdate无法对相关实体进行更改。我是否遗漏了某些内容,或者我是否应该注册相关实体财产的变更 注:我遵循以下规则 一些代码片段: 图书映射到作者和生命周期回调: <

我对该理论有点陌生,我发现LifeCycleCallback非常有用,但当我实施时,我发现这一点不足:

我有一个Author->Book一对多关系,我将
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');
}