您好我想创建一个自定义表单以获取用户的输入,我可以从网址访问该表单:
http://localhost/website/index.php/contest
但是当我将它上传到magento中有多个网站设置的服务器时,我无法像以前在本地服务器上那样访问该表单。
http://www.website.org/index.php/contest
我很难过,我打了一个墙,我用Google搜索,我只是不知道该找什么,任何帮助将不胜感激。提前感谢任何人
答案 0 :(得分:0)
Magento路由是一个覆盖单个Stack Overflow答案的大话题。您可以阅读setting up a controller here和probably in too much depth routing process here的基础知识。
那就是说,这是一些一般的调试技巧。
Magento可以看到你的控制器所属的模块吗?如果没有,您可能会错过app/etc/modules
中的文件。 (查看“系统 - >配置 - >高级 - >禁用模块输出”中的模块列表
如果您的模块已安装,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_dump
子句之前的一些return false
应告诉您为什么Magento无法找到和/或包含您的控制器类文件。