我无法在Magento中解决此错误:
“控制器文件已加载,但类不存在”。 (底部满堆)
我基本上是在尝试遵循本教程:Create new module “HelloWorld” – in Magento。
...虽然我使用自己的公司/班级名称而不是“hello world”
我总体上难以在Magento上找到好的文档,而且我对它很陌生......
任何人都可以提供一些共同的原因,建议或见解吗?我被淹没,谷歌搜索了几个小时,检查权限和文件结构。你说它的名字。
Trace:
#0 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(306): Mage::exception('Mage_Core', 'Controller file...')
#1 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(282): Mage_Core_Controller_Varien_Router_Standard->_inludeControllerClass('/var/www/dev_ml...', 'Foo_Wr...')
#2 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(195): Mage_Core_Controller_Varien_Router_Standard->_validateControllerClassName('foo_Wr...', 'index')
#3 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Front.php(158): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#4 /var/www/dev/app/Mage.php(459): Mage_Core_Controller_Varien_Front->dispatch()
#5 /var/www/dev/index.php(65): Mage::run()
#6 {main}
答案 0 :(得分:37)
该错误意味着magento为您的控制器找到了一个预期为(app/code/local/Namespace/Module/controllers/FooController.php)
的文件但该内部的类没有预期的名称(它不是 Namespace_Module_FooController )
答案 1 :(得分:22)
希望你有这个排序,只是为了让你知道我看了同一个教程,我认为这个错误可以通过在PHP代码示例的开头添加<?php声明来解决。
答案 2 :(得分:15)
您可能会发现this article,(larger series的一部分)(自我链接)更有帮助,而且更多地了解您正在做的事情,这将使您更好将来自己调试一下。
至于你的具体错误
已加载控制器文件,但类不存在
这意味着magento能够正确地要求/包含您将控制器置于中的文件,但控制器类名称错误。控制器应命名为
Packagename_Module_ControllernameController
并位于文件夹
中app/code/local/Packagename/Modulename/controllers/ControllernameController.php
答案 3 :(得分:2)
我收到此错误是因为我在CartController中使用了以下代码(重写)
require_once "Mage/Checkout/controllers/CartController.php";
class Muk_Mycart_CartController extends Mage_Core_Controller_Front_Action
{
}
而不是跟随行代码
require_once "Mage/Checkout/controllers/CartController.php";
class Muk_Mycart_Checkout_CartController extends Mage_Core_Controller_Front_Action
{
}
我在“Muk_Mycart_CartController”中缺少“Checkout”。这是错误,因为我在我的CartController中使用了以下代码(重写)
我的目录结构是这样的
\app\code\local\Muk\Mycart\controllers\Checkout
\app\code\local\Muk\Mycart\controllers\Checkout\CartController.php