将变量从子视图传递到其父视图,就像cakephp 3中的元素一样

xbp102n0  于 2022-11-11  发布在  PHP
关注(0)|答案(2)|浏览(150)

我有一个子视图文件包含

<!-- 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传递字符串。但是我如何将变量从子视图传递到其父视图呢?

lmyy7pcs

lmyy7pcs1#

感谢所有那些试图告诉“这是不可能的”在您的孩子视图设置变量像

$this->set('toParent' , $toParent);

并在您的父视图中轻松使用它,例如

$toParent = $this->get('toParent');

正如你所看到的,这是可能的:)

v1uwarro

v1uwarro2#

MVC paradigm中,一个视图不应该传递变量给其他任何东西,只需要解析和显示提供给它的变量。传递变量是控制器的工作。
也就是说,您可能要尝试实现的是从子视图中 * 渲染父视图或布局中存在的块的输出 *。在这种情况下,您应该使用$this->assign('blockname', $variable);或视图块中解释的等效函数。

相关问题