Zend 框架,视图

Posted

技术标签:

【中文标题】Zend 框架,视图【英文标题】:Zend framework, View 【发布时间】:2012-11-29 01:47:05 【问题描述】:

小谜团:似乎无法在我的索引控制器 (chartAction) 和我的视图之间传递视图。当我转到我的本地主机时,它没有访问视图 phtml- 而只是每次都显示控制器(即:如果我在控制器中写 "echo "HELLO WORLD!""; 我会得到回显......但如果我做一个 $this->view->test = "Hello World!"然后访问 index.phtml 并输入 echo $this->test; 我什么也没得到(它仍然默认为控制器操作)。我在这里缺少一个步骤吗?为什么我的 $this->view 不起作用?我使用了命令行创建视图,所以我很确定应该正确设置。 我需要注册一些东西吗?感谢您的帮助!

【问题讨论】:

所有视图的情况都是一样的还是只有一个视图? 所有视图——据我所知。 【参考方案1】:

假设 ZF1.x 的标准 MVC 设置,url、控制器和操作之间存在一定的关系。

url http://mydomain.com/index 会调用 index 控制器的 index 动作,通常是 index 动作是默认操作,会自动调用。视图脚本为/application/views/scripts/index/index.phtml

url http://mydomain.com/index/chart 会调用 index 控制器的 chart 动作,而视图脚本会是/application/views/scripts/index/chart.phtml

请记住,此行为可根据配置和路由选项进行更改。

听起来您在与 ZF 合作方面可能是个新手。因此,以下内容可能有助于证明这种关系:

// application/controllers/IndexController.php
class IndexController extends Zend_Controller_Action

    public function init()
    

    

    public function indexAction()
    
        $this->view->test = "Hello World, from the indexAction().";
    
    public function chartAction()
    
        $this->view->test = "Hello World, from the chartAction().";
    


// application/views/scripts/index/index.phtml
<?php echo $this->test ?>


// application/views/scripts/index/chart.phtml
<?php echo $this->test ?>

现在通过调用 url 来测试您的应用程序:

http://yourDomain.com/index/indexhttp://yourDomain.com/index/chart

如果您的设置正确,您将在页面中看到正确的响应。

【讨论】:

【参考方案2】:

案例 1:仅针对一项操作禁用查看:

在您的操作中查找以下代码。

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

案例 2:针对特定控制器中的所有操作禁用查看: 在控制器的 init() 或 preDispatch() 函数中查找上述行。

案例 3:所有控制器中的所有操作都禁用视图: 检查案例 1 和 2。另外,在 Bootstrap.php 中查找类似以下内容:

   $frontController->setParam("noViewRenderer", true);

如果您发现上面的代码,则必须将其注释掉才能使视图正常工作。我相信有更多的可能性来禁用视图。这些将在此之后进行检查。

【讨论】:

【参考方案3】:

您的视图已禁用..检查您的控制器的 actioninit 甚至您的 controller 可能正在扩展的类中的这些代码行

$this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender();

更新

您在您的chartAction 中执行此操作并在您的index.phtml 中回显您必须在您的chart.phtml 中执行此操作

【讨论】:

以上是关于Zend 框架,视图的主要内容,如果未能解决你的问题,请参考以下文章

Zend 框架 2 - 在布局中添加子视图?

Zend框架:禁用布局和视图-对于AJAX

如何从数组中获取值并在zend框架工作中分配给视图

zend 框架设置有问题吗?

设置 zend 框架动作控制器

Zend 框架中可以手动调度吗?