【发布时间】:2015-08-09 19:20:06
【问题描述】:
我想知道我是否可以根据 url 参数更改主题(或者是否为时已晚)以及是否可以观察哪个事件是正确的
我只找到了一个正在谈论观察controller_action_predispatch 的人,但是通过这个事件我仍然无法访问参数url(基于这个答案https://stackoverflow.com/a/19214765/1139052)
【问题讨论】:
我想知道我是否可以根据 url 参数更改主题(或者是否为时已晚)以及是否可以观察哪个事件是正确的
我只找到了一个正在谈论观察controller_action_predispatch 的人,但是通过这个事件我仍然无法访问参数url(基于这个答案https://stackoverflow.com/a/19214765/1139052)
【问题讨论】:
是的,您可以通过多种不同的方式做到这一点。该答案并不是说在controller_action_predispatch 事件中无法访问 URL 参数,但是您可能希望在controller_action_layout_load_before 之类的事件中执行此操作而不是and create custom layout handles from your param value。您可以像这样在观察者中获取它们:
public function getExampleParam(Varien_Event_Observer $observer)
{
$request = $observer->getControllerAction()->getRequest();
$param = $request->getParam('example');
return $this;
}
【讨论】:
$request = $observer->getControllerAction()->getRequest();返回这个错误:Call to a member function getRequest() on a non-object
Mage::app()->getRequest() 的快速而肮脏的全局调用可能会起作用。
Mage::app()->getRequest() 工作,非常感谢