Php 泽德:呼吁采取行动

Php 泽德:呼吁采取行动,php,zend-framework,Php,Zend Framework,我正试图了解Zend框架 我已经创建了一条自定义路线 resources.router.routes.helloworld.route = /helloworld resources.router.routes.helloworld.defaults.module = default resources.router.routes.helloworld.defaults.controller = helloworld resources.router.routes.helloworld.defa

我正试图了解Zend框架

我已经创建了一条自定义路线

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()

当我尝试在浏览器中加载页面时,会收到以下错误消息: “在路径(C:/:blah blah blah)中找不到脚本'xxx/display.phtml'”


我在这里做错了什么?

默认情况下,Zend Framework控制器操作使用ViewRenderer控制器帮助器。此帮助程序读取与操作相关的.phtml文件作为相关操作的查看脚本

控制器访问模型,最后将结果数据传递给视图脚本,以便视图脚本可以显示数据。这是“MVC”缩写中的“V”

对于您的情况,您已经指定默认操作的名称为“display”而不是“index”

但我认为您忘记了为此操作创建视图脚本文件。 默认情况下,视图脚本位于应用程序路径/APPLICATION/views/scripts目录中,假设如下:

  • 应用程序路径是应用程序结构和公共目录所在的位置(例如Linux上的/var/www/或Windows上的C:\Program Files\Apache Group\Apache\htdocs)
  • 您将应用程序(包括模型、控制器、模块等)的源代码保存在名为应用程序的目录中
  • 如果您的应用程序中有模块,例如,您的模块在应用程序/模块中定义;然后,视图/scripts目录位于每个模块目录中,而不是应用程序结构的根目录中
  • 在上面的目录中,每个控制器都应该有一个相关的子目录,每个操作都有一个扩展名为.phtml的视图脚本文件

    您应该在其中创建一个名为“helloworld”的目录,然后在该目录中创建一个名为“display.phtml”的文件,以便ViewRendere控制器帮助程序类可以加载它并将其用作此操作的视图

    如果不希望使用视图脚本,则应阻止ViewRendere辅助程序搜索视图脚本文件。为此,请将此代码添加到控制器代码中的操作中:

    $this->_helper->viewRenderer->setNoRender(true);
    
    此代码告诉视图渲染器操作帮助器不要搜索视图脚本文件


    对于默认配置的Zend Framework应用程序,请不要提及上述所有内容,但可以通过配置您的应用程序、资源和帮助对象进行更改。

    谢谢,这是一个非常清晰和详细的解释。我不知道默认情况下操作与视图绑定。我显然有很多东西要学。