Magento-我可以将观察者的数据存储在助手中,然后调用block.php吗

Magento-我可以将观察者的数据存储在助手中,然后调用block.php吗,php,magento,Php,Magento,我无法将观察者的数据直接传递到我的区块。在我的观察者尝试将数据推送到该块之前,该块似乎“不存在”。我使用以下代码将订单ID推送到我的块中,然后将所有订单信息调用到该块中: public function setCappsCactOnOrderSuccessPageView(Varien_Event_Observer $observer) { $orderIds = $observer->getEvent()->getOrderIds(); if (empty($ord

我无法将观察者的数据直接传递到我的区块。在我的观察者尝试将数据推送到该块之前,该块似乎“不存在”。我使用以下代码将订单ID推送到我的块中,然后将所有订单信息调用到该块中:

public function setCappsCactOnOrderSuccessPageView(Varien_Event_Observer $observer)
{
    $orderIds = $observer->getEvent()->getOrderIds();
    if (empty($orderIds) || !is_array($orderIds)) {
        return;
    }
    $block = Mage::app()->getFrontController()->getAction()->getLayout()->getBlock('capps_cact');
    if ($block) {
        $block->setOrderIds($orderIds);     
    }
}
然后在块中执行此操作时,变量为空:

$orderIds = $this->getOrderIds();
if (empty($orderIds) || !is_array($orderIds)) {
        echo ('This is empty');
        return;
    } else {
        echo ('That worked correctly');
所以我想知道的是,我是否可以将$orderIds推送到data.php帮助程序,然后在它存在时将其回调到我的块中


我希望这是有道理的。我只需要存储来自观察者的变量,并将其回调到我的块中。

是否尝试检索刚下订单的orderID,然后在块中呈现该信息?是和否。我只需要显示我的代码一次。我知道这可以用来获取订单ID,$orderId=Mage::getSingleton('checkout/session')->getLastRealOrderId();$order=Mage::getModel('sales/order')->loadByIncrementId($orderId);但是我只需要它显示在success页面上,而不是其他页面如果您知道如何检索它,为什么不尝试从块中检索它,而不是尝试注入变量?只需在成功页面上加载该块,并让该块访问数据并显示它。我加载该块的方式是检查是否有订单ID。该订单ID在客户离开成功页面后跟随客户,因此该块将显示在随后的每个页面上。事实证明,我可以在成功页面上添加另一个块来清除会话。这是一个更容易实现我需要的方法。