gpt4 book ai didi

php - 重定向前 Magento 中的事件调度

转载 作者:可可西里 更新时间:2023-11-01 00:34:52 25 4
gpt4 key购买 nike

我在 Magento 中使用事件分派(dispatch)时遇到问题。

我正在使用 controller_action_predispatch 从 URL 中的参数设置前端 session 变量。

现在,问题似乎是,当用户最初访问该站点时,他们可能会借出一个页面,该页面会将他们重定向到基本 URL(例如 example.com 到 www.example.com)。但由于某种原因,重定向后, session 变量丢失了......

有什么想法吗?

谢谢。

编辑:

添加使用的代码:

public function grabRef($observer) {
$ref = Mage::app()->getRequest()->getParam('ref', $default);
if (isset($ref) && !is_null($ref) and !empty($ref)) {

Mage::getSingleton('core/session',array('name'=>'frontend'))->setRefid($ref);

}
}

最佳答案

在此重定向之前只调度了两个远程有用的事件,但它们并不特定于重定向:

  • controller_front_init_before
  • controller_front_init_routers

重定向取决于系统 > 配置 > Web > Url 选项 中的“自动重定向到基本 URL”设置,该设置由 Mage_Core_Controller_Varien_Front->_checkBaseUrl() 评估.此重定向发生在任何调度发生之前,并且它不附加 GET 或 POST 数据,因此您 try catch 的参数丢失。

通常, session 会根据正在使用的 Controller 类在 adminhtmlfrontend session 命名空间下初始化(引用 Action Controller 父类(super class)方法 Mage_Core_Controller_Varien_Action->preDispatch() 。您应该能够将您的观察者配置移动到 global/events/controller_front_init_before 下。请注意,您必须在 global 事件区域中执行此操作,因为前端事件配置部分会执行此操作直到派发此事件后才会加载。那个特定场景曾经让我花费一个小时!

关于php - 重定向前 Magento 中的事件调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com