0

大家好,感谢您的回答。

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

我已经在 Elements/model/some_code.ctp 中创建了一个元素并从 view.ctp 中调用它,但我的同事建议我在 View/Controller/some_code.php 中创建一个文件并在 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 } ?>
4

1 回答 1

0

我认为,做到这一点的最佳方法是使用元素,原因有很多:

  • 元素可以轻松缓存
  • 通过使用元素,您可以选择要发送的变量或覆盖当前视图变量的值
  • Elements 不以与视图内的 include() 或 require() 相同的方式共享变量范围。
于 2013-11-05T13:48:30.923 回答