我一直在尝试编写一个基本身份验证系统作为我为了了解Zend Framework而使用的项目的一部分。我一直在使用Zend CLI工具来帮助创建我的应用程序。我有一个名为Admin的模块,其中我有一个名为Auth的控制器。然而,当我尝试导航到该控制器在浏览器中,我得到了以下错误:由你越过指定了无效的控制器(auth)
An error occurred
Page not found
Exception information:
Message: Invalid controller specified (auth)
Stack trace:
#0 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /home/www-data/zend.danielgroves.net/htdocs/public/index.php(26): Zend_Application->run()
#4 {main}
Request Parameters:
array (
'module' => 'admin',
'controller' => 'auth',
'action' => 'index',
)
您可以查看该为自己zend.danielgroves.net
至于我能告诉所有命令都是正确命名的,看看下面的截图,看看CLI工具如何构造所有东西。这是我在试图构建这个登录系统http://akrabat.com/zend-auth-tutorial/时遵循的指南。我刚刚登录屏幕截图(第一张图片)。
任何帮助将不胜感激。
编辑1
我的application.ini文件发表@ByteNudger建议的变化:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.db.adapter = "Pdo_Mysql"
resources.db.params.charset = "utf8"
resources.db.params.host = "localhost"
resources.db.params.username = ""
resources.db.params.password = ""
resources.db.params.dbname = ""
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = "" (section [bootstrap])
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
通过的application.ini变化所产生的PHP错误:
PHP Fatal error: Uncaught exception 'Zend_Config_Exception' with message 'syntax error, unexpected '(' in /home/www-data/zend.danielgroves.net/htdocs/application/configs/application.ini on line 20' in /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Config/Ini.php:182
Stack trace:
#0 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Config/Ini.php(202): Zend_Config_Ini->_parseIniFile('/home/www-data/...')
#1 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Config/Ini.php(126): Zend_Config_Ini->_loadIniFile('/home/www-data/...')
#2 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Application.php(386): Zend_Config_Ini->__construct('/home/www-data/...', 'development')
#3 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Application.php(85): Zend_Application->_loadConfig('/home/www-data/...')
#4 /home/www-data/zend.danielgroves.net/htdocs/public/index.php(24): Zend_Application->__construct('development', '/home/www-data/...')
#5 {main}
thrown in /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Config/Ini.php on line 182
编辑2:编辑2:
好吧,我刚刚尝试了下面的罗斯史密斯二世在答案中提出的建议。我的application.ini文件现在读:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/admin/controllers"
resources.frontController.params.displayExceptions = 0
resources.db.adapter = "Pdo_Mysql"
resources.db.params.charset = "utf8"
resources.db.params.host = "localhost"
resources.db.params.username = ""
resources.db.params.password = ""
resources.db.params.dbname = ""
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "admin"
resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/layouts/scripts/"
resources.modules[] =
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
,我在浏览器中收到此错误:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Controller/Dispatcher/Standard.php:248 Stack trace: #0 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #2 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #3 /home/www-data/zend.danielgroves.net/htdocs/public/index.php(26): Zend_Application->run() #4 {main} Next exception 'Zend_Controller_Exception' with message 'Invalid controller specified (error)#0 /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(O in /home/www-data/zend.danielgroves.net/htdocs/library/Zend/Controller/Plugin/Broker.php on line 336
见自己:http://zend.danielgroves.net/admin/auth/
编辑3
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/admin/controllers"
resources.frontController.params.displayExceptions = 0
resources.db.adapter = "Pdo_Mysql"
resources.db.params.charset = "utf8"
resources.db.params.host = "localhost"
resources.db.params.username = ""
resources.db.params.password = ""
resources.db.params.dbname = ""
resources.modules[] = ""
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
你是否在'application.ini'中用'resources.modules [] =“”'('section [bootstrap]')行启用了模块资源? – ByteNudger 2012-07-19 14:38:05
@ByteNudger看到我在上面的帖子编辑,不幸的是它并没有解决这个问题。 – 2012-07-19 14:48:20
对不起'(section [bootstrap])'不应该在'application.ini'中。只是作为评论而已。请删除它并重试。 – ByteNudger 2012-07-19 15:02:49