簡體   English   中英

保存到自定義模塊magento中之前,觀察者事件不起作用

[英]Observer event is not working before save in custom module magento

我已經在管理面板中創建了一個自定義模塊。 在將表單數據保存到表中之前,我想使用觀察器執行小的concat操作。但是在保存之前,它運行良好。

我的config.xml文件:

        <events> 
     <demo_save_before>
        <observers>
            <blazedream_demo_save_observer>
               <type>singleton</type>
               <class>demo/observer</class>
               <method>demo_save_before</method>
            </blazedream_demo_save_observer>
        </observers>
    </demo_save_before>
    </events> 

我的模型文件:Observer.php

    <?php
   class Blazedream_Demo_Model_Observer 
   {
     public function demo_save_before($observer){
     $demo = $observer->getEvent();     
     $demo->setContent(Mage::app()->getRequest()->getPost("title")." ".Mage::app()->getRequest()->getPost("content"));

    }

    }

我在控制器中的調度程序代碼:

      public function saveAction()
{
$event_data_array  =  array('content' => Mage::app()->getRequest()->getParam('content'));
    $varien_object = new Varien_Object($event_data_array);
    Mage::dispatchEvent('demo_save_before', array('varien_obj'=>$varien_object));
    //echo $varien_object->getDemo_id();
$date = date('Y-m-d H:i:s');  
if ( $this->getRequest()->getPost() ) {
try {
$postData = $this->getRequest()->getPost();
$demoModel = Mage::getModel('demo/demo');
$demoModel->setId($this->getRequest()->getParam('id'))
->setTitle($postData['title'])
->setContent($postData['content'])
->setStatus($postData['status'])
->setCreated_time($date)
->setUpdate_time($date)
->save();
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved'));
Mage::getSingleton('adminhtml/session')->setDemoData(false);
$this->_redirect('*/*/');
return;
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
Mage::getSingleton('adminhtml/session')->setDemoData($this->getRequest()->getPost());
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
return;
}
}
$this->_redirect('*/*/');
} 

任何人都可以幫助找到問題。 提前致謝。

在要觀察的自定義模型中,確保覆蓋了屬性:

protected $_eventPrefix = 'demo';

調度事件正在執行:

Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());

如果未設置,將無法正常工作。

也可能存在您覆蓋_beforeSave而沒有調用的問題

parent::_beforeSave() 

在里面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM