我正试图了解Zend Framework。
我创建了一个自定义路线
resources.router.routes.helloworld.route = /helloworld
resources.router.routes.helloworld.defaults.module = default
resources.router.routes.helloworld.defaults.controller = helloworld
resources.router.routes.helloworld.defaults.action = display
在我的hellowrold控制器类中,我将indexAction()
名称更改为displayAction()
。
当我尝试在浏览器中加载页面时,我收到以下错误消息: 路径中找不到'script'xxx / display.phtml'(C:/:blah blah blah)'
我在这里做错了什么?
答案 0 :(得分:2)
默认情况下,Zend Framework控制器操作使用ViewRenderer Controller帮助程序。该帮助程序将与该操作相关的.phtml文件读取为相关操作的查看脚本。
控制器访问模型,最后将结果数据传递给视图脚本,因此视图脚本可以显示数据。这是“MVC”缩写中的“V”。
对于您的情况,您已指定默认操作名为“display”而不是“index”。
但我认为您忘记为此操作创建视图脚本文件。 默认情况下,视图脚本位于 APPLICATION_PATH / application / views / scripts 目录中,具有以下假设:
在上面的目录中,每个控制器都应该有一个相关的子目录,每个动作都有一个.phtml扩展名的视图脚本文件。
你应该在那里创建一个名为“helloworld”的目录,然后在该目录中创建一个名为“display.phtml”的文件,这样ViewRendere控制器助手类就可以加载它并将其用作此动作的视图。 / p>
如果您不想拥有视图脚本,则应阻止ViewRendere帮助程序搜索视图脚本文件。为此,请将此代码添加到控制器代码中的操作中:
$this->_helper->viewRenderer->setNoRender(true);
此代码告诉视图渲染器操作助手不要搜索视图脚本文件。
请注意,以上所有内容都是针对默认配置的Zend Framework应用程序提到的,但可以通过配置应用程序,资源和帮助程序对象来更改。