gpt4 book ai didi

model-view-controller - CakePHP 导航栏 View 结构

转载 作者:行者123 更新时间:2023-12-04 06:15:56 26 4
gpt4 key购买 nike

在 CakePHP 中,假设 default.ctp 只是做框架 HTML, <body>包含 $content_for_layout只要。这对于 mysite.com 的大多数页面都非常有用.但是,让我们说 mysite.com/account/ 中的 View 需要共享一个导航栏。对于帐户区域下的 View ,哪种方法是正确的?

A) 使导航栏成为自己的元素,并且该元素包含在每个 View 中:

<!-- settings.ctp, profile.ctp, myfiles.ctp ... -->
<div id="account_area">
<?php echo $this->element('account_nav'); }
<div>...</div>
</div>

我在 A) 中真正不喜欢的是每个 .ctp 复制相同的包装代码(无论多么小)。所以也许像 B) 这样的东西更好:

B) 创建 View account/index.ctp并让每个 Action 设置一个 $section变量和做 $this->render('/account/index') ,将每个屏幕放在自己的元素中:
<!-- /views/account/index.ctp -->
<div id="account_area">
<div id="account_nav">...</div>
<?php echo $this->element("account/$section"); }
</div>

C) 别的东西

谢谢,布赖恩

最佳答案

通常我这样做的方式是选项 A。但我把 $this->element('account_nav');在布局中。这可以防止将代码放在每个 View 中。

如果导航需要配置或禁用,只需像往常一样向布局添加逻辑并将变量传递给 View 。然后,您可以根据需要从任何操作对其进行配置。

最后,这是一种混合方法。但从我的经验来看,提供了最大的灵活性。

关于model-view-controller - CakePHP 导航栏 View 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com