我有一个子视图文件包含
<!-- src/Template/Posts/view.ctp -->
<?php
$this->extend('/Common/view');
//1
$this->assign('title', $post);
//2
$this->start('sidebar');
//...
$this->end();
?>
以及包含以下内容父级
<!-- src/Template/Common/view.ctp -->
<h1><?= $this->fetch('title') ?></h1>
<?= $this->fetch('sidebar') ?>
我可以通过方法1、2传递字符串。但是我如何将变量从子视图传递到其父视图呢?
2条答案
按热度按时间lmyy7pcs1#
感谢所有那些试图告诉“这是不可能的”在您的孩子视图设置变量像
并在您的父视图中轻松使用它,例如
正如你所看到的,这是可能的:)
v1uwarro2#
在MVC paradigm中,一个视图不应该传递变量给其他任何东西,只需要解析和显示提供给它的变量。传递变量是控制器的工作。
也就是说,您可能要尝试实现的是从子视图中 * 渲染父视图或布局中存在的块的输出 *。在这种情况下,您应该使用
$this->assign('blockname', $variable);
或视图块中解释的等效函数。