【问题标题】:What is the difference between those 2 events in Magento?Magento 中的这两个事件有什么区别?
【发布时间】:2013-12-03 10:06:16
【问题描述】:

Magento 中的<catalog_category_save_after><catalog_category_save_commit_after> 有什么区别?

我要创建一个新模块,我必须决定在这两个事件中的哪一个事件中挂起我的观察者。

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    类别(和所有其他对象)保存在事务中。事件catalog_category_save_after 在事务内部触发。所以这个事件的观察者中可能出现的任何错误都会触发回滚。

    事务提交后触发事件catalog_category_save_commit_after。因此,该事件的观察者内部的任何错误都不会触发类别保存的回滚。

    【讨论】:

    • ,你能告诉我 catalog_category_save_commit_after 事件中的参数是什么
    • @AmitBera。当前类别作为参数传递给事件。你可以像这样得到它:$observer->getEvent()->getCategory()$observer->getEvent()->getDataObject()。两者都返回相同的东西。
    • @marius 'catalog_category_save_commit_after' 与 magento2 中可用的事件相同吗?
    • @Sathish 我不知道。
    【解决方案2】:

    事件在提交后触发,这意味着该观察者可用于发出 SQl 成功的信号。

    while 不保证不会有任何回滚。这里在编写观察者时不能想当然地认为任何触发的 sql 都不会回滚。

    简而言之,如果你想添加一个观察者,那么在成功(comit)之后应该收集一些特定的功能,然后使用 catalog_category_save_commit_after。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      • 2022-06-10
      • 2019-05-15
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      相关资源
      最近更新 更多