是否可以在另一个视图中显示视图?
我有以下代码:
<?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中使用?
答案 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; ?>