除了视图文件的位置之外,使用之间有什么区别(我在视图文件中使用这些调用用于多个视图文件中使用的小HTML代码)
echo $this->render('some_view_file', false)
vs echo $this->element('some_view_file')
?
我一直在使用$this->element()
一段时间,因为我读过的所有教程和指南都使用了这种方法,但我的元素文件夹中有太多文件用于不同的控制器。我最近发现我可以使用$this->render()
并将视图文件保存在app/view/controller_name
的各自文件夹中,这样可以使文件组织更简单,更清晰。
答案 0 :(得分:9)
<强> $这 - &GT;呈现()强>
$this->render()
是您的Controller的代码。它告诉您的控制器操作要呈现哪个文件。默认情况下,您不需要使用它 - 如果您正确命名View文件并将它们放在正确的文件夹中,它们将自动呈现。 (有些情况下你会使用它,但是 - 它并不适用于所有行动)
<强> $这 - &gt;元素()强>
$this->element()
是您的视图中的代码。它用于加载您希望能够在视图中的多个位置或多个视图中使用的小段代码。
根据CakePHP的书,“元素”是:
较小的,可重复使用的视图代码。元素通常被渲染 在观点内。
所以你应该使用Views而不是Elements作为主要的“页面”文件,并在你的视图中使用$this->element()
来提取可重复使用的代码块。