Mysql 在magento的模块中,observer.php有什么用途

Mysql 在magento的模块中,observer.php有什么用途,mysql,magento,pdo,module,observers,Mysql,Magento,Pdo,Module,Observers,实际上,我现在在magento开发一个模块来检查凭证代码是否使用。详细信息存储在新表中。在我的config.xml中,我指定了用于从db表获取详细信息的观察者页面。但我不知道在magento中观察者页面的确切用法。我可以使用观察者页面进行此用途 但它继续出错 我检查了日志文件 那是 a:5:{i:0;s:203:“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行“=”附近使用正确的语法;i:1;s:1677

实际上,我现在在magento开发一个模块来检查凭证代码是否使用。详细信息存储在新表中。在我的config.xml中,我指定了用于从db表获取详细信息的观察者页面。但我不知道在magento中观察者页面的确切用法。我可以使用观察者页面进行此用途

但它继续出错 我检查了日志文件

那是

a:5:{i:0;s:203:“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行“=”附近使用正确的语法;i:1;s:1677:#0 C:\wamp\www\Mymagento\lib\Varien\Db\Statement\Pdo\MySQL.php(110):Zend\u Db\u Statement\u Pdo->\u execute(数组)

下面还显示了我的observer.php文件

类模块\u凭证\u模型\u观察者 {

}

请帮助这里的mysql错误是什么。请尽快帮助


提前感谢

Observer.php是一个模型类文件,与所有模型一样,如果我们需要它的函数,它也可以被称为任何模型

通常我们在使用magento事件时使用观察者。在config.xml中,我们声明事件,并在事件发生时使用观察者函数来处理事件

我已经检查了你的错误和代码。代码似乎没有得到优惠券代码的值。请检查$优惠券代码中是否有任何值

这可能就是问题所在


谢谢。

观察者是事件监听器,事件在Magento中通过以下方式发送:

Mage::dispatchEvent('event_name', array('item' => $this));
分派事件时,Magento将检查哪些观察者绑定到该事件,并将调用配置中定义的函数,该函数的参数为Varien_event_Observer对象

你的函数可以是这样的:

public function getresultofVoucher(Varien_Event_Observer $observer)
{
    $item = $observer->getItem();
    // do something with it
}

我给$优惠券代码分配了一个伪值“111”。但仍然显示错误日志。错误日志在这里是a:5:{I:0;s:206:“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行“=111”附近使用的正确语法;I:1;s:1677:”#0 C:\wamp\www\Mymagento\lib\Varien\Db\Statement\Pdo\Mysql.php(110):Zend_Db_Statement_Pdo->_execute(数组),我也在我的控制器页面$ObjModel=new Logix_concedure_Model_Observer();$voucherResult=$ObjModel->getresultofconceducer($conceducer_code)中使用此函数;在我的indexController页面中调用此函数是否有任何错误。indexController脚本如下所示:公共函数indexAction(){$this->loadLayout();$ObjModel=new Module_凭证_Model_Observer();$voucherResult=$ObjModel->GetResultOfCourse($优惠券代码);如果($voucherResult!=”||(!empty($voucherResult))&&&$this->getRequest()->getParam($优惠券代码)!=”{foreach($voucherResult as$Result){$output=$Result['value'];}如果($output!='NO MATCHES FOUND'){Mage::getSingleton('core/session')->addSuccess($this->\uuquence('coups已使用优惠券))}否则{Mage::getSingleton('core/session->addSuccess($this->(优惠券尚未使用);}
public function getresultofVoucher(Varien_Event_Observer $observer)
{
    $item = $observer->getItem();
    // do something with it
}