我想制作自定义日志\历史记录,以便跟踪发生的情况。我有这样的实体:
- 类别
-Item
-AttrValue
-attributes
所有这些都是这样的: 我读了它并决定使用EventListeners并使用doctrine将事件写入表中。您不需要提供使用波段进行日志记录/审核,实质是您不需要它们就可以完成的任务。因此,我确定了实现这一目标的步骤:
-Time(When);
- 什么(发生的动作,例如,创建,更新,查看或删除记录);
-OldValue(如果存在);
-NewValue(如果存在);
buildLog (LifecycleEventArgs $args, $type)
,其中$type
是一个操作(创建,更新或删除)。因此,我有这样的问题:
1.我可以将EventListeners用于我想做的事情吗?
2.如果是这样,我是否正确描述了行动的顺序? (在services.yml
中定义EventListeners我不考虑)
3.如何确定发生了什么动作? (我将在下面附上我的路由文件)
4.如何将这一切用于多个实体?这样的东西适合吗?
$ entity = $ args-> getEntity ();
可以在某处实现类似的实现,以便您可以阅读吗? 我的路由:
getAllCategory: 路径:/ category 方法:[GET] 默认值:{_ control:AppBundle:Catalog:getAllCategory}
的getCategory: 路径:/ category / {id} 方法:[GET] 默认值:{_ control:AppBundle:Catalog:getCategory}
postCategory: 路径:/ category 方法:[POST] 默认值:{_ control:AppBundle:Catalog:postCategory}
updateCategory: 路径:/ category 方法:[补丁] 默认值:{_ control:AppBundle:Catalog:updateCategory}
deleteCategory: 路径:/ category / {id} 方法:[删除] 默认值:{_ control:AppBundle:Catalog:deleteCategory}
getAllItem: 路径:/ items 方法:[GET] 默认值:{_ console:AppBundle:Item:getAllItems}
的getItem: 路径:/ item / {id} 方法:[GET] 默认值:{_ console:AppBundle:Item:getItem} postItem: 路径:/ item 方法:[POST] 默认值:{_ control:AppBundle:Item:postItem}
的updateItem: 路径:/ item 方法:[补丁] 默认值:{_ console:AppBundle:Item:updateItem}
deleteItem: 路径:/ item / {id} 方法:[删除] 默认值:{_ control:AppBundle:Item:deleteItem}