2010-07-22 90 views
0

我正在开发一个使用Cakephp的webapp。我为网站创建了一个默认布局。我创建了诸如页眉,页脚,内容等部分。在Cakephp中使用布局/元素

现在我的内容部分中的一些页面具有相同的结构。这些是控制器的一部分,为每个页面定义了各种视图。我应该在这里使用什么样的视图模板?布局或元素?

如果我使用布局,我将使用控制器来决定我将使用的布局,但不会改变整个网站的布局吗?

Regards

回答

1

这实在是一个偏好问题。我尝试将布局看作页面的“结构” - 所以标题,左导航的占位符,顶导航的页脚,页脚的占位符。那种事。我在布局中定义这些部分。

我会推荐“我的内容部分中的页面[结构相同]是您的布局。正如你所提到的,你可以在控制器中切换布局,但任何类似的结构化的页面(一旦你删除内容将看起来一样的页面)我会共享一个布局。

布局切换的另一个例子可以用于登录与匿名用户。对于已登录的用户,网站经常在顶部放置一个“欢迎,$名称”消息,以及指向我的帐户的链接,退出等。我经常发现自己使用不同的布局来登录与非匿名用户。同样,在这种情况下,我使用beforeFilter()方法为给定的控制器设置布局,因为我知道用户是否登录或执行回调时。

对不起,这是一个灰色区域(何时使用布局与不同的元素)。

+0

感谢这个漫不经心:)。关于我的问题的一件事是,所谓的页面(具有相同的结构)以相同的方式构建其内容。页眉,页脚,菜单和全部仍然与主布局相同。在这种情况下,有什么方法可以在布局中使用布局? – vikmalhotra 2010-07-22 21:45:27

+0

我会将这些元素放入元素中,您可以从布局中包含这些元素。从语义上讲,它更有意义 - 布局是骨架,可以由多个组件(元素)组成。它将隐喻混合一点,以包含另一个内部的布局。 – 2010-07-27 15:35:08