我试图找出实体的哪些属性已更改。据我所知,有一个 PersistenceSession 有一个方法来检查一个对象是否属性是脏的。但它总是正确的,因为它从不注册旧对象。
因此,如果我从 QuickGuide 中获取演示并覆盖 CoffeeBeanRepository 中的更新方法:
/**
* @param \Acme\Demo\Domain\Model\CoffeeBean $coffeeBean
*/
public function update($coffeeBean) {
\TYPO3\Flow\var_dump($this->persistenceSession->isDirty($coffeeBean, 'name'), "name changed before");
parent::update($coffeeBean);
\TYPO3\Flow\var_dump($this->persistenceSession->isDirty($coffeeBean, 'name'), "name changed after");
}
...它总是 TRUE(两者),尽管我没有改变任何东西。
任何人都知道如何实现这一点?我将它用于 REST API,其中用户无法更新多个字段并且在编辑某些字段时必须执行其他操作。