在哪里以Cakely方式放置一些视图代码

时间:2013-11-05 13:17:50

标签: php cakephp

大家好,感谢您的回答。

如果我想从视图中删除一些代码以简化它,那么正确的方法是什么?

我在Elements / model / some_code.ctp中创建了一个元素,并从view.ctp中调用它,但是我的同事建议我在View / Controller / some_code.php中创建一个文件并用一个include来调用它。 view.ctp文件。 我创建的元素没有在应用程序的其他部分复制,我只在这里移动代码以简化view.ctp文件的可读性。

这是对的吗?

谢谢大家;)

更好的解释:

//index.ctp
[..some code..]
echo $this->element('box');
[..some code..]

//Element/box.ctp
<?php if (isset($n)) { ?>
<div class="row">
<?php
    echo $this->BoxStat->drawBox('Title', $n[1], 'green', array(
        array('name' => 'Tot', 'link' => "/model/action", 'color' => '', 'number' => $n[2]),
        array('name' => 'Free', 'link' => "/model/action", 'color' => 'green', 'number' => $n[3]),
        array('name' => 'Full', 'link' => "/model/action", 'color' => 'grey', 'number' => $n[4]),
    ));

    [..repeat..]
?>
</div>
<?php } ?>

1 个答案:

答案 0 :(得分:0)

我认为,实现这一目标的方法有很多原因:

  • 可以轻松缓存元素
  • 通过使用元素,您可以选择要发送或覆盖当前视图变量值的变量
  • 元素不以相同的方式共享变量范围include()或require()在视图中。