php - 在 Zend Framework 的 View 或 Controller 中设置变量更好吗?

标签 php model-view-controller zend-framework view-helpers

我的问题需要一些设置,所以请耐心等待:

我转而使用 View Helpers 从模型中获取数据,而不是将其散布在整个 Controller 上(向 Eric Clemmons 致敬)。它在那里更可重用和灵活。我就是喜欢它!

我通常做的是在 index.phtml 中布置模板,然后当我需要从模型中获取某些内容时,将该片段放在 detail.phtml 中,这样逻辑就尽可能远离可能。

但是,我开始看到需要重用变量。例如,类别名称。现在您不想使用 View 助手一遍又一遍地从模型中获取猫的名字。尽管您可以缓存它,但这显然太麻烦了。

所以我开始在 detail.phtml 中使用几行 php 来设置变量。而且它不再闻起来了。 View 不应该有太多逻辑。

所以你们怎么说?如果 var 被重用,将它放在 Controller 中?或者不介意在 View 中设置几个变量?

编辑:Alan Storm 询问了一个 viewhelpers 的例子:

细节.phtml:

<ul id="productList">

<? foreach($this->getProductById($id) as $product) : ?>
    <li><?= $this->escape($product['name']) ?></li>
<? endforeach; ?>

</ul>

(为反短标记者的攻击做好准备)

另一个编辑: 我看到不可能有 2 个正确答案。好吧……

最佳答案

Controller 和 View 都不是用于存储应用程序状态的。这就是模型的用途。

请记住,MVC 中的“模型”不是数据库表!模型是您为应用程序实现业务逻辑的地方,将其存储在数据库中是模型的内部实现细节。但是您的应用程序中可以有与数据库无关的模型。

关于php - 在 Zend Framework 的 View 或 Controller 中设置变量更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268998/

相关文章:

javascript - ZF 1.9 从前端 html 重定向

php - 使用 p4a,如何将一行插入 MySQL 数据库?

zend-framework - Zend Session Handler Db 表在 PHPUnit 测试期间被破坏

php - 文本加权到段落的最后一行

php - 为 mysql 的 WHERE IN 准备逗号分隔的字符串

php - 如何在 HTML 中的 PHP 代码后取消不需要的换行符

php - 非重复返回 PDO PHP

c# - 无法隐式转换类型 'List<System.Web.Mvc.SelectListItem> to ' IEnumerable<Microsoft.AspNetCore.Mvc.Rendering.SelectListItem>'

model-view-controller - web2py:如何在调用 Controller 之前执行代码?

asp.net - 从azure存储mvc中删除Blob