Cakephp 蛋糕PhP块-如何使用它们?

Cakephp 蛋糕PhP块-如何使用它们?,cakephp,cakephp-2.0,block,Cakephp,Cakephp 2.0,Block,有人能给我解释一下如何在CakePHP2.0中使用“视图块”吗 我已经阅读了cakephp站点上的文档,但是对于新手用户来说,它遗漏了很多内容。。。e、 g.我需要什么文件在哪里,如何在代码中调用块,代码块是否需要自己的文件夹/控制器/模型/视图等?我真的迷路了 如果有人能从头到尾解释如何使用一个块作为侧边栏,那就太好了 例如,我有一个侧边栏,我想在不同的页面上使用,但我想将侧边栏分解为不同的元素,以便在块内调用,例如 <div class="heading1"> <h2&

有人能给我解释一下如何在CakePHP2.0中使用“视图块”吗

我已经阅读了cakephp站点上的文档,但是对于新手用户来说,它遗漏了很多内容。。。e、 g.我需要什么文件在哪里,如何在代码中调用块,代码块是否需要自己的文件夹/控制器/模型/视图等?我真的迷路了

如果有人能从头到尾解释如何使用一个块作为侧边栏,那就太好了

例如,我有一个侧边栏,我想在不同的页面上使用,但我想将侧边栏分解为不同的元素,以便在块内调用,例如

<div class="heading1">
  <h2>Heading 1</h2>
</div>
<div class="ul-list1">
<ul> 
<li>list item 1</li>
<li>list item 2</li>
</ul>
</div>
<div class="heading2">
  <h2>Heading 2</h2>
</div>
<div class="ul-list1">
<ul> 
<li>list item 3</li>
<li>list item 4</li>
</ul>
</div>

标题1
  • 清单项目1
  • 清单项目2
标题2
  • 清单项目3
  • 清单项目4
所以把它分成两部分(标题1和标题2)


如何编写块的代码,在哪里插入代码,需要哪些页面?(请针对CakePhP新手,因为我对此很困惑!)

您可以在视图或元素中使用以下代码

// for start the block code
$this->start('block_name');

// your html code will goes here, even you can also specify the element reference.

$this->end(); // close the block.
在布局中,可以按如下方式获取/显示视图块代码:

echo $this->fetch('block_name'); // anywhere in the layout.

确保在视图和布局中指定了相同的块名。

应创建如下元素

// app/views/elements/headings.ctp
<?php $this->start('heading1'); ?>
<div class="heading1">
    <h2>Heading 1</h2>
</div>
<div class="ul-list1">
    <ul> 
        <li>list item 1</li>
        <li>list item 2</li>
    </ul>
</div>
<?php $this->end(); ?>


<?php $this->start('heading2'); ?>
<div class="heading2">
    <h2>Heading 2</h2>
</div>

<div class="ul-list1">
    <ul> 
        <li>list item 3</li>
        <li>list item 4</li>
    </ul>
</div>
<?php $this->end(); ?>
// end element file

// include the element first before getting block in the views or layout file.
<?php 
    echo $this->element('headings');
?>

// after that you will able to display block anywhere inside view files or layout also with following statements.

<?php
    // for heading first 
    echo $this->fetch('heading1');

    // for heading second.
    echo $this->fetch('heading2');
?>
//app/views/elements/headings.ctp
标题1
  • 清单项目1
  • 清单项目2
标题2
  • 清单项目3
  • 清单项目4
//结束元素文件 //在视图或布局文件中获取块之前,先包含图元。 //之后,您将能够使用以下语句在视图文件或布局中的任何位置显示块。
在布局或元素中执行以下操作时: $this->fetch ("block_name"); $this->fetch(“块名称”); 无论何时定义块或覆盖块。。。每次在其他元素中都可以执行$this->start(“block\u name”)或$this->append(“block\u name”)。。。cakephp将“合并”您的所有操作到该块,并将它们放在适当的位置(在布局中定义)

使用块的示例。。。想象一下,布局的页眉中有一块css,页脚中有一块javascript。。。如果有特定的CSS或JavaScript用于特定的字体,它们将被添加到那个块中,在生成的HTML……/P>中间没有脚本和CSS。
我希望这对你有帮助

这是我不明白的地方。如果我像第一部分所说的那样将HTML添加到我想要查看的视图中,那么块中获取数据的目的是什么?如果我在元素中使用块代码,那么我应该把它放在哪里?你能具体说明一下什么放在哪里,在什么文件夹里等等吗?因为我仍然很困惑。如果你在元素中添加了块代码,那么你可以在
$this->start('block_name')中添加元素
$this->end()在视图中。我如何“即使你也可以指定元素引用”?我已经更新了这个问题,希望能帮助我获得额外的帮助,因为我仍然迷路,请帮助:)我仍然停留在这个问题上-我真的需要从一个完全新手的角度来回答这个问题!写什么代码,把代码放在哪里,在什么页面,如何调用这些代码?如何使用元素等…?嗨,罗伯特,如果你还有任何问题,请随时发表评论。我仍然不明白仅仅使用几个元素有什么好处。我很确定你可以用块做一些惊人的事情,但是我想不出有什么东西不能用更少的代码行和更简单的元素来完成。