在Magento网站的不同部分,客户会话是不同的
我在Magento中的Helper中有一个函数,用于返回customer属性是否等于1 这是我的助手课在Magento网站的不同部分,客户会话是不同的,magento,Magento,我在Magento中的Helper中有一个函数,用于返回customer属性是否等于1 这是我的助手课 class Nie_Nie_Helper_Data extends Mage_Core_Helper_Abstract { public function isNieAdmin() { if(Mage::getSingleton('customer/session')->getCustomer()->getNieAdmin() == 1) {
class Nie_Nie_Helper_Data extends Mage_Core_Helper_Abstract {
public function isNieAdmin() {
if(Mage::getSingleton('customer/session')->getCustomer()->getNieAdmin() == 1) {
return true;
} else {
return false;
}
}
}
现在,当我从一个扩展Mage_Core_Block_模板的类调用这个函数时,一切似乎都正常。然而,当我试图在我的一个控制器中使用它时,它不起作用。事实上,当我执行Mage::getSingleton('customer/session')->getCustomer()->debug()
时,返回的唯一变量是网站id
有人知道我必须做什么才能让它工作吗?在控制器运行时,会话对象尚未初始化(尽管会话变量必须初始化),因此它返回一个空白模型。我猜
网站\u id
是在创建客户对象时故意设置的,作为默认值
您可以直接访问$\u SESSION['customer']
来查找您需要的内容,但这很麻烦。另一种方法是在以后发生的事件中做你想做的事情
我希望有人能想出比我更好的答案。在控制器运行时,会话对象尚未初始化(尽管会话变量必须初始化),因此它返回一个空白模型。我猜
网站\u id
是在创建客户对象时故意设置的,作为默认值
您可以直接访问$\u SESSION['customer']
来查找您需要的内容,但这很麻烦。另一种方法是在以后发生的事件中做你想做的事情
我希望有人能想出一个比我更好的答案。好吧,看来我得自己加载会话了。我必须在我的职能中加入以下内容:
Mage::getSingleton('core/session', array('name' => 'frontend'));
希望这能有所帮助。好的,看来我必须自己加载会话。我必须在我的职能中加入以下内容:
Mage::getSingleton('core/session', array('name' => 'frontend'));
希望这能有所帮助。真奇怪。虽然我并没有凌驾于杂乱无章的做事方式之上,但我确实发现在控制器中没有会话是很奇怪的。我觉得Varien应该解决这个问题。$\u SESSION变量与if相同,我提取的数据与Magento的Singleton相同。这太奇怪了。虽然我并没有凌驾于杂乱无章的做事方式之上,但我确实发现在控制器中没有会话是很奇怪的。我觉得Varien应该解决这个问题。$\u SESSION变量与if相同,我提取的数据与Magento的Singleton相同。