gpt4 book ai didi

zend-framework - 无效的 Controller 指定错误,即使 Controller 存在

转载 作者:行者123 更新时间:2023-12-04 08:26:30 27 4
gpt4 key购买 nike

我有一个名为 MenuItem 的驼峰式 Controller 名称。而且我还为这个特定的 Controller 创建了一个路由器

    $routeMenuItem = new Zend_Controller_Router_Route('/menu-item/:action/:menu/:parent/:id/*', array(
'controller' => 'MenuItem',
'action' => 'index',
'menu' => 1,
'parent' => 0,
'id' => 0
));

不,当我导航到这条路线时,可以说 /menu-item/index/2我收到一个错误, Invalid controller specified (MenuItem)错误。

但是我在 时遇到了这个问题linux环境下部署 .但是,在 Windows 环境中的开发过程中它 工作正常 .

如何解决这个问题?

更多信息

Controller :
File Name: MenuItemController.php
Class Name: MenuItemController

堆栈跟踪
#0 /../library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /../library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /../library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /../public/index.php(25): Zend_Application->run()
#4 {main}

请求参数
array (
'action' => 'index',
'menu' => '2',
'controller' => 'MenuItem',
'parent' => 0,
'id' => 0,
)

最佳答案

这是因为 Windows 不区分大小写,而基于 Linux 的操作系统则区分大小写。

从 ZendFramework 手册:

Zend_Controller’s dispatcher then takes the controller value and maps it to a class. By default, it Title-cases the controller name and appends the word Controller. Thus, in our example above, the controller roadmap is mapped to the class RoadmapController.



这意味着 MenuItemController.php 和 MenuitemController.php 是两个不同的东西,因此自动加载器无法找到匹配项。

通常,当使用多字 Controller 时,只需确保只有类的第一个字母和 Controller 中的 C 是大写的。

关于zend-framework - 无效的 Controller 指定错误,即使 Controller 存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com