TYPO3 Extbase:使用更改日志记录更新记录

时间:2018-09-17 13:10:35

标签: typo3 extbase typo3-extensions

当我使用Extbase存储库更新对象时(例如在cronjob或前端)...

$myRepository->update($myObject);

,然后在TYPO3 BE中使用“显示更改历史记录/撤消”按钮显示此记录,我没有看到任何历史记录。在TYPO3 BE中编辑对象时,我只会看到历史记录。

如何启用历史记录?

1 个答案:

答案 0 :(得分:2)

简短版本:您不能,因为历史记录仅用于后端界面中的更改。

较长的版本:您可以使用,但是可以在存储库中包含大量自定义代码,这将执行以下两项操作之一:

  1. 覆盖存储库上的update方法,并从中触发DataHandler方法更新记录-然后使用持久性会话将您的对象标记为干净,因此Extbase不会尝试对其进行持久化再次。通过DataHandler进行的更新将记录历史记录。
  2. 也可以覆盖update方法,但要手动写入历史记录,而不是允许DataHandler这样做。

第一个解决方案处理起来非常复杂。第二个意味着您必须实现一些(重复的)代码,并且可能不会导致在TYPO3中触发所有常见的钩子(这通常很好,但有时会引起第三方扩展的麻烦)。如果您被迫这样做,我将选择第二种解决方案。但我首先要考虑的是,是否可能需要具有特定于BE的历史记录才能进行匿名(无BE用户)​​编辑,而这将滥用对撤消历史记录的意图也是 旨在:是谁进行了更改。