所以,我正在努力解决这个问题,我已经设置了一个观察员设置,以便在客户/帐户/登录被点击时触发。 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数据。)
答案 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来获取帖子详细信息,而不是控制器。