gpt4 book ai didi

php - 如何在不使用 CakePHP 中各处的 using 'view/layout' 语句的情况下保持多个相似的 'if()' 文件干燥?

转载 作者:行者123 更新时间:2023-12-03 23:13:50 25 4
gpt4 key购买 nike

我正在使用 CakePHP 开发一个应用程序,并且有两种布局:一种用于主页,另一种用于应用程序的其余部分。除了标题上的一些编码之外,它们几乎完全相同。我可以做些什么来保留DRY ,而不在整个布局中使用 if () 语句?

最佳答案

我建议使用大量元素。这样,您仍然可以将所有代码保存在一个位置。例如,如果这是您的主页布局(不包括样板):

<body>
<?php echo $this->renderElement('pageHeader'); ?>
<?php echo $this->renderElement('frontPageNotification'); ?>
<?php echo $this->renderElement('navAndOtherStuff'); ?>
...
</body>

这是您的内部布局(您想要在其中显示除 frontPageNotification 之外的所有内容:

<body>
<?php echo $this->renderElement('pageHeader'); ?>
<?php echo $this->renderElement('navAndOtherStuff'); ?>
...
</body>

现在,如果它们几乎完全相同,我可能只会使用单个布局,并在布局本身内使用一些 if 语句来确定要显示的内容。此外,您可以通过查看 $this->params 数组来选择显示哪些元素,以找出正在加载的页面后面的 Controller 和操作。喜欢:

<body>
<?php echo $this->renderElement('pageHeader'); ?>

<?php if($this->params['controller'] == 'pages' && $this->params['action'] == 'index') { echo $this->renderElement('frontPageNotification'); } ?>
<?php echo $this->renderElement('navAndOtherStuff'); ?>
...
</body>

诚然,这相当丑陋。只是试图呈现我能想到的所有选项:)

祝你好运

关于php - 如何在不使用 CakePHP 中各处的 using 'view/layout' 语句的情况下保持多个相似的 'if()' 文件干燥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975590/

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