Подтвердить что ты не робот

Получение данных POST в наблюдателе 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 в методе наблюдателя).

4b9b3361

Ответ 1

Используйте Mage::app()->getRequest()->getParams()

Он вернет массив всех параметров, отправленных в действие вызываемого контроллера

Надеюсь, это поможет вам

Ответ 2

вместо использования контроллера, поэтому

вместо

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

измените на

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

Итак, вместо контроллера вы используете $app, чтобы получать детали сообщения.