Ответ 1
Используйте Mage::app()->getRequest()->getParams()
Он вернет массив всех параметров, отправленных в действие вызываемого контроллера
Надеюсь, это поможет вам
Итак, я борюсь с этим, у меня есть наблюдатель, настроенный для запуска всякий раз, когда попадает клиент/учетная запись/логин. 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::app()->getRequest()->getParams()
Он вернет массив всех параметров, отправленных в действие вызываемого контроллера
Надеюсь, это поможет вам
вместо использования контроллера, поэтому
вместо
Mage::log(print_r($controller->getRequest()->getPost(), true));
измените на
Mage::log(print_r(Mage::app()->getRequest()->getPost(), true));
Итак, вместо контроллера вы используете $app, чтобы получать детали сообщения.