我有一个包含
的子视图文件<!-- 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传递字符串。 但是如何将变量从子视图传递给其父视图?
答案 0 :(得分:5)
感谢所有那些试图告诉&#34;这是不可能的&#34; 在子视图中设置变量,如
$this->set('toParent' , $toParent);
并在父视图中轻松使用
$toParent = $this->get('toParent');
正如您所见,这是可能的:)
答案 1 :(得分:0)
在MVC paradigm中,视图不应该将变量传递给其他任何东西,只需解析并显示给定的变量即可。传递变量是控制器的工作。
设置完成后,您可能尝试实现的是将输出呈现在子视图中父视图或布局中存在的块。在这种情况下,您应该使用$this->assign('blockname', $variable);
或View Blocks中解释的等效函数。