Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否应从控制器中修改占位符?_Php_Model View Controller_Zend Framework_Zend View - Fatal编程技术网

Php 是否应从控制器中修改占位符?

Php 是否应从控制器中修改占位符?,php,model-view-controller,zend-framework,zend-view,Php,Model View Controller,Zend Framework,Zend View,假设我有一个简单的网站,用户可以登录。当他们登录时,我想向他们显示与非访客用户不同的消息。此消息应通过将消息附加到占位符中来呈现 这应该在哪里进行?我正在考虑让我的控制器检查用户是否登录,然后通过$this->view->placeholder(“侧栏”)->append()将其附加到占位符中。更好的解决方案可能是根据当前用户的身份验证状态切换布局。这可以通过preDispatch中的插件或控制器中的preDispatch来完成。通过将显示逻辑放置在视图层中,如果决定更改消息或将其全部删除,则不

假设我有一个简单的网站,用户可以登录。当他们登录时,我想向他们显示与非访客用户不同的消息。此消息应通过将消息附加到占位符中来呈现


这应该在哪里进行?我正在考虑让我的控制器检查用户是否登录,然后通过
$this->view->placeholder(“侧栏”)->append()将其附加到占位符中。

更好的解决方案可能是根据当前用户的身份验证状态切换布局。这可以通过preDispatch中的插件或控制器中的preDispatch来完成。通过将显示逻辑放置在视图层中,如果决定更改消息或将其全部删除,则不必更新较低级别的代码


我个人会选择将其置于a中,因为它抽象了检查身份验证状态和更新远离控制器的视图的问题,并防止您担心在将来创建的任何控制器中放入适当的代码。

更好的解决方案可能是根据当前用户的身份验证状态切换布局。这可以通过preDispatch中的插件或控制器中的preDispatch来完成。通过将显示逻辑放置在视图层中,如果决定更改消息或将其全部删除,则不必更新较低级别的代码


我个人会选择将其置于a中,因为它将检查身份验证状态和更新视图的问题从控制器中抽象出来,并防止您担心在将来创建的任何控制器中放入适当的代码。

这是个人偏好的问题。我总是把这个责任委托给视图,所以在我看来,是的,它应该由视图来处理

这是个人喜好的问题。我总是把这个责任委托给视图,所以在我看来,是的,它应该由视图来处理

为什么不把它放在布局中呢

例如,我经常遇到以下情况影响我的布局:如果用户登录,我希望显示他的用户名、查看/编辑其个人资料的链接以及注销的链接。如果他没有登录,那么我会向他显示登录链接和注册链接


处理所有这些问题的代码使用
Zend\u Auth::hasiness()
Zend\u Auth::getIdentity()
,以及
url()
视图帮助程序。为了使布局代码更加精简,我经常将所有这些内容放入自己的视图助手中,称为
authLinks()

为什么不将其放入布局本身

例如,我经常遇到以下情况影响我的布局:如果用户登录,我希望显示他的用户名、查看/编辑其个人资料的链接以及注销的链接。如果他没有登录,那么我会向他显示登录链接和注册链接

处理所有这些问题的代码使用
Zend\u Auth::hasiness()
Zend\u Auth::getIdentity()
,以及
url()
视图帮助程序。为了使布局代码更加精简,我经常将所有这些内容放入自己的视图助手中,称为
authLinks()