0

嗨,我想创建一个自定义表单来获取用户的输入,我可以从 url 访问表单:

http://localhost/website/index.php/contest

但是当我将它上传到在 magento 中设置了多个网站的服务器时,我无法像以前在本地服务器上那样访问表单。

http://www.website.org/index.php/contest

我被难住了,我撞到了我用谷歌搜索的墙,我只是不知道要寻找什么,任何帮助将不胜感激。提前感谢任何人

4

1 回答 1

0

Magento 路由是一个要在单个 Stack Overflow 答案中涵盖的大主题。您可以在此处阅读有关设置控制器的基础知识,以及此处可能过于深入的路由过程

也就是说,这里有一些一般的调试技巧。

  1. Magento 可以看到您的控制器所属的模块吗?如果没有,您可能在app/etc/modules. (查看`System -> Configuration -> Advanced -> Disable Module Output中的模块列表)

  2. 如果您的模块已安装,Magento 可能找不到您的控制器类。Eitehr 因为它不存在,所以你有区分大小写的问题。在函数中添加一些临时调试代码,_validateControllerClassName以确定 Magento 找不到您的控制器的原因。

您可以在_validateControllerClassName此处找到该功能

#File: app/code/core/Mage/Core/Controller/Varien/Router/Standard.php
protected function _validateControllerClassName($realModule, $controller)
{
    $controllerFileName = $this->getControllerFileName($realModule, $controller);
    if (!$this->validateControllerFileName($controllerFileName)) {
        return false;
    }

    $controllerClassName = $this->getControllerClassName($realModule, $controller);
    if (!$controllerClassName) {
        return false;
    }

    // include controller file if needed
    if (!$this->_includeControllerClass($controllerFileName, $controllerClassName)) {
        return false;
    }

    return $controllerClassName;
}

子句之前的一些var_dumpsreturn false应该告诉您为什么 Magento 无法找到和/或包含您的控制器类文件。

于 2013-04-01T18:32:36.990 回答