如何在一个视图或控制器中呈现更多视图

时间:2013-08-30 05:17:11

标签: php view cakephp-2.0

如何在蛋糕PHP中的单个视图中渲染2个视图,

我试过以下,

在view / test / index.ctp中,

  

     

echo $ this-> render('/ page1 / index');

     

echo $ this-> render('/ page2 / index');

我的观点/ page1 / index.ctp,

  

回显“来自page1的内容”;

我的观点/ page2 / index.ctp,

  

回显“来自page2的内容”;

我期待输出为,

  

我的内容来自page1我的内容来自page2

但我从第1页开始收到我的内容

请建议我如何实现这一点。

1 个答案:

答案 0 :(得分:1)

(只是添加一个答案,所以这个问题显示为已回答,即使它已在评论中得到有效回答)

正如其他人在评论中提到的那样,您只能从控制器渲染一个视图。您需要使用elements。元素是可重复使用的视图片段。

如果你有一个名为my_view.ctp的视图文件,你可以添加以下代码,包含两个名为'hello_world'和'name_details'的元素:

$this->element('hello_world'); // <= element with no parameters

// example passing parameters to the element
$this->element('name_details', array('first' => 'John', 'last' => 'smith'));

您的元素文件将放在app/views/elements中,并将被称为hello_world.ctpname_details.ctp。您传入的参数将作为变量提供,因此name_details.ctp可能如下所示:

First Name: <?php echo $first; ?>
<br />
Last Name: <?php echo $last; ?>

另请注意,控制器中设置的视图变量将自动在元素中可用。