在Magento观察者中获取POST数据

时间:2014-03-11 11:51:04

标签: php magento

所以,我正在努力解决这个问题,我已经设置了一个观察员设置,以便在客户/帐户/登录被点击时触发。 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数据。)

2 个答案:

答案 0 :(得分:26)

使用Mage::app()->getRequest()->getParams()

它将返回发送到被叫控制器动作的所有参数的数组

希望这有助于你

答案 1 :(得分:6)

而不是控制器使用app

而不是

Mage::log(print_r($controller->getRequest()->getPost(), true));

更改为

Mage::log(print_r(Mage::app()->getRequest()->getPost(), true));

因此,您可以使用$ app来获取帖子详细信息,而不是控制器。