我在网站的页眉部分有一个登录表单。如果用户登录,登录表单将显示用户个人资料的详细信息。问题是如何将页眉页脚和内容分离到不同的视图并从一个控制器调用它们?或者,也许有另一种解决方案...感谢您的帮助。yii中单独的页眉,内容和页脚
回答
在你的标题视图中,你可以写这样的东西。
<?php if(Yii::app()->user->getId()): ?>
<?php $this->renderPartial('//world/_header_user')); ?>
<?php else: ?>
<?php $this->renderPartial('//world/_header_guest')); ?>
<?php endif; ?>
最简单的方法可能是使用不同的布局,您只需切换登录。如果不是,则显示基于Yii :: app() - > user-> isGuest的partials/components也适用。
您默认生成的Yii应用程序在protected/components/Controller.php中有一个父控制器。 如果您需要访问布局中的其他参数,请将公共属性添加到控制器,将它们设置在您的子控制器中,然后在视图/布局文件中使用它们。
使用模型 - 视图 - 控制器(MVC)设计模式,基于Yii的站点的外观自然由View文件控制。这些文件是HTML和PHP的组合,有助于创建所需的输出。网站中的特定页面将使用特定的查看文件。事实上,View文件被设计为相当自然的分解,例如,用于创建和编辑员工记录的表单是它自己的文件,并且该文件可以被create.php和update .PHP。与OOP中的大多数事情一样,实现原子的解耦功能对提高可重用性有很大的帮助。但是单个View文件只是渲染网页的一部分。单个视图文件在布局文件中呈现。尽管我在Yii的着作中提到了一两次布局,但这是一个值得自己发表的主题。
要清楚,布局是一种View文件。具体来说,虽然其他View文件被放置在相应Controller的目录中(即SiteController从视图/站点拉出),但是布局文件会进入视图/布局中。但是,当其他视图文件与单独的控制器(因此,单个页面)相关联时,布局是共有的,由所有页面共享。简而言之,布局文件是整个网站模板系统的父包装器。我将解释
YPU可以看到更多的细节
http://www.larryullman.com/2012/05/16/working-with-layouts-in-yii
- 1. 内容页眉页脚
- 2. 内容之间的页眉/页脚
- 3. 的CSS固定高度的内容内beetwen页脚和页眉
- 4. 页眉和页脚的div中的内容
- 5. 带页眉和页脚以及100%内容的网页div
- 6. 将网站内容对齐到css中的页眉和页脚
- 7. 100%页眉/页脚的宽度和仍然中心内容
- 8. RelativeLayout中的页眉,内容和页脚没有alignParentBottom =“true”
- 9. 页眉和页脚之间的垂直中心内容
- 10. 目标页眉和页脚Word 2007中的内容控件
- 11. 右对齐按钮/页眉和页脚divs中的内容
- 12. 固定页眉和页脚和100%高度的内容
- 13. 单独的页眉和页脚与MVC Codeigniter
- 14. HTML包含:单独的页眉和页脚
- 15. 的页眉内容
- 16. 未知页眉,页脚高度和中间内容与滚动?
- 17. 粘性页眉和页脚垂直排列内容到中心
- 18. 不重叠页眉和页脚使网站内容居中
- 19. 单独的.php中的页眉和页脚,当前页面突出显示
- 20. HTML创建与页脚和页眉和内容
- 21. 粘滞的页眉和页脚与自动滚动内容
- 22. magento前端的内容和页脚不显示,除了页眉
- 23. HTML拉伸页眉和页脚长期的内容没有JS
- 24. 页眉和页脚之间100%的内容
- 25. 内容占用页眉和页脚之间的所有空间
- 26. WordPress动态内容具有不同的页眉和/或页脚
- 27. Laravel获取页眉和页脚的内容
- 28. 在Yii框架应用中嵌入Wordpress页眉和页脚
- 29. 页眉和页脚菜单不工作
- 30. 单页眉和页脚文件