使用CakePHP 3查看视图内部

时间:2017-11-11 05:59:03

标签: cakephp cakephp-3.x

是否可以在另一个视图中显示视图?

我有以下代码:

<?php if ($result->type === 'brochure') : ?>
    <div>
        // massive template block
    </div>
<?php elseif ($result->type === 'library') : ?>
    <div>
        // massive template block different from above
    </div>
<?php else : ?>
    <div>
        // massive template block different from both above
    </div>
<?php endif; ?>

我想用内容块替换那些可以这么说。我看了一下view blocks,但是我使用它错了,或者它没有做我想做的事。

这是否可以在CakePHP 3中使用?

1 个答案:

答案 0 :(得分:3)

你可以使用元素。

首先,您应该在src / Template / Element目录中使用.ctp格式创建元素,如此

// in brochure.ctp file in  src/Template/Element
 <div>
    // your massive template block
</div>

然后你可以调用这样的元素:

<?php if ($result->type === 'brochure') : ?>

      <?= $this->element("brochure") ?>

<?php elseif ($result->type === 'library') : ?>

      <?= $this->element("library") ?>

<?php else : ?>

      <?= $this->element("default") ?>

<?php endif; ?>