如何使用cakephp在另一个视图中调用视图

Mab*_*Koo 5 php cakephp

我只是新的CakePhp,我想知道如何在另一个视图中调用视图.

当我开始运行CakePhp时,默认布局位于view/layouts/default.ctp中.

default.ctp中,我调用了一个视图名称homeview(view/homes/homeview.ctp).

这是我的代码:

<?php 
     echo $this->fetch('homeview'); // this statement here is work
?>
Run Code Online (Sandbox Code Playgroud)

homeview.ctp中,我调用另一个名为displayphone的视图(view/homes/displayphone.ctp) homeview.ctp

<?php $this->start('homeview'); ?>
    <h1> This is home view </h1>
    <?php echo $this->fetch('displayphone'); // this statement does not work; ?>
<?php $this->end(); ?>
Run Code Online (Sandbox Code Playgroud)

displayphone.ctp

<?php $this->start('displayphone');?>
    <h1> This page display phone </h1>
<?php $this->end(); ?>
Run Code Online (Sandbox Code Playgroud)

为什么我不能在homeview中调用displayphone block?

Ana*_*d G 8

如你所说,

 $this->fetch('homeview');
Run Code Online (Sandbox Code Playgroud)

已经按名称homeview创建了一个块,请参阅http://book.cakephp.org/2.0/en/views.html

除非为此创建元素,否则无法在视图内调用另一个视图.元素是HTML的通用集合,可以在整个项目中的任何视图文件中使用.为了上述目的,在视图中的Element文件夹中按名称"displayphone.ctp"创建一个元素,然后调用它

 $this->element('displayphone');
Run Code Online (Sandbox Code Playgroud)

希望这会解决你的目的.