为什么我的Magento观测者会陷入无休止的循环?

为什么我的Magento观测者会陷入无休止的循环?,magento,observer-pattern,Magento,Observer Pattern,我的观察者陷入了无休止的循环。为什么会发生这种情况?我如何修复它 config.xml: 您的观察者等待一个装运被保存,然后保存一个装运,这会导致它接收另一个事件(yadda yadda ad nauseum)。您将需要一种方法来逃离循环,或者不必保存装运 您是否可以在之前将事件移动到销售\订单\发货\保存\然后让正常发货保存生效,或者您是否需要发货已经保存以执行您的逻辑部分 如果是这样,请更改观察者上的以下行,以便Magento将其用作单例: <type>singleton<

我的观察者陷入了无休止的循环。为什么会发生这种情况?我如何修复它

config.xml:


您的观察者等待一个装运被保存,然后保存一个装运,这会导致它接收另一个事件(yadda yadda ad nauseum)。您将需要一种方法来逃离循环,或者不必保存装运

您是否可以在之前将事件移动到
销售\订单\发货\保存\然后让正常发货保存生效,或者您是否需要发货已经保存以执行您的逻辑部分

如果是这样,请更改观察者上的以下行,以便Magento将其用作单例:

<type>singleton</type> // changed from model
singleton//已从模型更改
然后,在类中创建一个变量来跟踪是否已递归。如果是这样,那就回来吧

或者,您可以检查货件上是否已经有任何跟踪编号,并仅在没有跟踪编号时保存(然后添加一个)。这也将终止递归

如果其中一个适合你,请告诉我

谢谢, 乔

我用过

sales_order_shipment_save_after
它对我有用


谢谢:)

嗨,乔,谢谢你的回复。我想你指的是
sales\u order\u shipping\u before
而不是
sales\u order\u shipping\u before
,因为我已经在
sales\u order\u shipping\u after
后使用
yes时遇到了问题,将事件更改为
sales\u order\u shipping\u before
对我有效。但仍然很想知道如何使用
sales\u order\u shipping\u save\u after
,如果我需要的话。您好,saurabhIt已经很久没有回答这个问题了,但是您能提供一些关于如何设置您在回答中提到的单例变量的见解吗???
<type>singleton</type> // changed from model
sales_order_shipment_save_after