所以,我正在努力解决这个问题,我有一个观察员设置,以便在客户/帐户/登录被点击时触发.Firebug清楚地表明我正在将数据发布到此URL,并且我无法在观察者方法中读取所述POST数据.
观察者方法:
public function checkCustomerLogin($observer) { Mage::log("event observed"); $controller = $observer->getControllerAction(); Mage::log(print_r($controller->getRequest()->getPost(), true)); return $this; }
示例日志结果:
2014-03-11T11:46:38+00:00 DEBUG (7): event observed 2014-03-11T11:46:38+00:00 DEBUG (7): Array ( )
我的观察者被配置为触发controller_action_predispatch_customer_account_login
.很明显我在这里做错了,看到我怎么都拿不到我的POST数据(我已经尝试了一些其他绝望的方法,但从我可以告诉你这是如何"应该"得到一个控制器和观察者方法中的POST数据).
而不是控制器使用应用程序
代替
Mage::log(print_r($controller->getRequest()->getPost(), true));
改成
Mage::log(print_r(Mage::app()->getRequest()->getPost(), true));
因此,您使用$ app来获取帖子详细信息,而不是控制器.
使用 Mage::app()->getRequest()->getParams()
它将返回发送到被调用控制器操作的所有参数的数组
希望这对你有所帮助