是否应该从Controller中修改占位符?

| 假设我有一个简单的网站,用户可以登录。当他们登录时,我想向他们显示与非(访客)用户不同的消息。该消息应通过将其附加到占位符中来呈现。 应该在哪里做?我当时想让控制器检查用户是否已登录,然后通过“ 0”附加到占位符
已邀请:
为什么不将其放置在布局本身中呢? 例如,经常有以下情况影响我的布局:如果用户已登录,则要显示其用户名,查看/编辑其个人资料的链接以及注销的链接。如果他尚未登录,那么我将向他显示一个登录链接和一个注册链接。 处理所有这些的代码使用
Zend_Auth::hasIdentity()
Zend_Auth::getIdentity()
url()
视图帮助器。为了使布局代码更简洁一些,我经常将所有这些内容推送到我自己的名为
authLinks()
的视图助手中。
更好的解决方案可能是根据当前用户的身份验证状态切换布局。这可以通过preDispatch中的插件或控制器中的preDispatch中的插件来完成。通过将显示逻辑放在视图层中,如果您决定更改消息或一起删除消息,则不必更新较低级别的代码。 我个人选择将其放在控制器插件中,因为它抽象了检查身份验证状态和更新视图而不是控制器的问题,并且使您不必担心将来在您创建的任何控制器中放置适当的代码。
这是个人喜好问题。我总是将这种责任委托给视图,因此在我看来,应该由视图来处理。

要回复问题请先登录注册