【发布时间】:2014-05-26 14:14:51
【问题描述】:
我正在使用一个学说事件侦听器来添加对更新事件的操作。当我的实体更新时,我也希望改变另一个实体。这两个实体通过 oneToMany 关系链接,但我更改的实体不在级联关系的“右侧”。
有一个代码示例可以更好地理解。
Entities\Test:
type: entity
entityListeners:
Listeners\Test
manyToOne:
counter:
targetEntity: Entities\Counter
inversedBy: tests
joinColumn:
name: counterId
referencedColumnName: id
onUpdate: CASCADE
Entities\Counter:
type: entity
oneToMany:
tests:
targetEntity: Entities\Test
mappedBy: counter
cascade: ["persist"]
还有我的听众:
class Counter
{
public function preUpdate(Test $oTest, LifecycleEventArgs $oEvent)
{
$oTest->getCounter()->setUpdateVar(1);
}
}
我可以使用 $oTest->getCounter() 或 $oEvent->getEntity()->getCounter() 甚至使用 persist() 但计数器变量永远不会改变。
有人知道我该怎么做吗?
【问题讨论】:
标签: zend-framework doctrine-orm