加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework – 无效的控制器指定错误,即使控制器存在

发布时间:2020-12-13 22:32:16 所属栏目:PHP教程 来源:网络整理
导读:我有一个名为MenuItem的camelcased控制器名称.而且我也为这个特定的控制器创建了一个路由器 $routeMenuItem = new Zend_Controller_Router_Route('/menu-item/:action/:menu/:parent/:id/*',array( 'controller' = 'MenuItem','action' = 'index','menu' = 1
我有一个名为MenuItem的camelcased控制器名称.而且我也为这个特定的控制器创建了一个路由器

$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我得到一个错误,无效的控制器指定(MenuItem)错误.

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

怎么解决这个?

更多信息

控制器:

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是两个不同的东西,因此自动加载器无法找到匹配项.

通常,在使用多字控制器时,只需确保只有类的第一个字母和控制器中的C大写.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读