Magento:不能改变Mage :: getSingleton('core / session')的值吗?

时间:2013-10-15 23:15:21

标签: php magento mage

我有一个扩展名

在Controller php文件中我有下面的行

public function accountverificationAction() {
        $customerEmail = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
        $mobile_num = $this->getRequest()->getParam('mobile_number');
        $mobile_code = $this->getRequest()->getParam('mobile_code');        
        $smsModel = Mage::getModel('ardindata/ardindata');

        Mage::getSingleton('core/session')->setVerificationphase('mobile');

        if($mobile_num) {
            $sms_response = $smsModel->sendSms($mobile_num,$customerEmail);
            if(is_numeric($sms_response)) {
                Mage::getSingleton('core/session')->setVerificationphase('code');
            } else {
                if(empty($sms_response)) {
                    $message = $this->__('Error: Please enter a valid mobile number');
                } else {
                    $message = $this->__('Error: '.$sms_response);
                }
                Mage::getSingleton('core/session')->addError($message);
            }
        }

    if($mobile_code) {
        $verificationCompleted = $smsModel->customerVerification($customerEmail,$mobile_code);
        if($verificationCompleted != '1') {
            $message = $this->__('Verification Failed!');
            Mage::getSingleton('core/session')->addError($message);
        }
    }

    $this->loadLayout();
    $this->renderLayout();
}

所以,我首先将值“移动”设置为 Mage :: getSingleton('core / session') ...我想将其更改为“代码 if(is_numeric($ sms_response))之后,但它没有改变,只回显”移动“!

我不知道为什么,有人可以帮我解决吗?

全部谢谢

1 个答案:

答案 0 :(得分:0)

在为核心/会话变量分配新值之前,您需要取消设置旧的指定值。

纠正后的完整功能代码:

public function accountverificationAction() {
    $customerEmail = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
    $mobile_num = $this->getRequest()->getParam('mobile_number');
    $mobile_code = $this->getRequest()->getParam('mobile_code');        
    $smsModel = Mage::getModel('ardindata/ardindata');

    Mage::getSingleton('core/session')->setVerificationphase('mobile');

    if($mobile_num) {
        $sms_response = $smsModel->sendSms($mobile_num,$customerEmail);
        if($sms_response) {
            Mage::getSingleton('core/session')->unsVerificationphase();
            Mage::getSingleton('core/session')->setVerificationphase('code');
        } else {
            if(empty($sms_response)) {
                $message = $this->__('Error: Please enter a valid mobile number');
            } else {
                $message = $this->__('Error: '.$sms_response);
            }
            Mage::getSingleton('core/session')->addError($message);
        }
    }