在 magento 1.9 自定义模块中的电子邮件中收到错误的确认 link

Incorrect confirmation link received on e-mail in magento 1.9 custom module

我在 Magento 1.9 上安装了自定义博客模块,当用户对 post 发表评论时,管理员将收到一封电子邮件,其中包含 link 到他所在的页面可以批准或不批准评论。 link 不正确,我不明白为什么。这是创建 link 的代码:

if (Mage::getStoreConfig('blog/comments/recipient_email') != null && $model->getStatus() == 1
            && isset($commentId)
        ) {
            $translate = Mage::getSingleton('core/translate');
            /* @var $translate Mage_Core_Model_Translate */
            $translate->setTranslateInline(false);
            try {

                $adminUser = Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');

                $data["url"] = Mage::getUrl("awblog_manage_comment/edit/id");
                $data["url"] = str_replace("index.php", $adminUser, $data["url"]);
                $data["url"] .= $commentId."/";

                $postObject = new Varien_Object();
                $postObject->setData($data);

                $mailTemplate = Mage::getModel('core/email_template');
                /* @var $mailTemplate Mage_Core_Model_Email_Template */
                $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                    ->sendTransactional(
                        Mage::getStoreConfig('blog/comments/email_template'),
                        Mage::getStoreConfig('blog/comments/sender_email_identity'),
                        Mage::getStoreConfig('blog/comments/recipient_email'), null, array('data' => $postObject)
                    );
                $translate->setTranslateInline(true);
            } catch (Exception $e) {
                $translate->setTranslateInline(true);
            }
        }

当我在本地服务器上回显 $data["url"] 时,我得到了正确的 link,如下所示:

.../admin/awblog_manage_comment/edit/id/57/

但是当我在服务器上上传代码时,我在电子邮件中收到了这个link:

.../awblog_manage_comment/edit/id/57/

缺少管理部分,因此,当我尝试访问 link 时出现 404 错误。

谁能告诉我这是什么问题?是我的代码还是服务器,还是别的? 非常感谢!

您可以使用此代码获取控制器操作的管理员 URL。

$data["url"] = Mage::helper('adminhtml')->getUrl('adminhtml/awblog_manage_comment/edit/id', array('_secure' => true);
$data["url"] .= $commentId."/";

注意: 'awblog_manage_comment' 如果您的管理粗略不同,请替换它,否则它会起作用。