Zend:召唤一个动作

时间:2011-06-11 10:56:05

标签: php zend-framework

我正试图了解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)'

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

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

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

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

但我认为您忘记为此操作创建视图脚本文件。 默认情况下,视图脚本位于 APPLICATION_PATH / application / views / scripts 目录中,具有以下假设:

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

    你应该在那里创建一个名为“helloworld”的目录,然后在该目录中创建一个名为“display.phtml”的文件,这样ViewRendere控制器助手类就可以加载它并将其用作此动作的视图。 / p>

    如果您不想拥有视图脚本,则应阻止ViewRendere帮助程序搜索视图脚本文件。为此,请将此代码添加到控制器代码中的操作中:

    $this->_helper->viewRenderer->setNoRender(true);
    

    此代码告诉视图渲染器操作助手不要搜索视图脚本文件。

    请注意,以上所有内容都是针对默认配置的Zend Framework应用程序提到的,但可以通过配置应用程序,资源和帮助程序对象来更改。