我只是坚持这个问题,如何获得一个小部件的执行结果,并将其转换为变量。 我有类似的地方:
[
'label' => 'Images',
'content' => $contentImages,
],
我还有一个小部件:
<?php OwlCarouselWidget::begin(); ?>
<div class="item-class"><img src="/img/girl.png" alt="Image 1"></div>
<div class="item-class"><img src="/img/girl.png" alt="Image 2"></div>
<div class="item-class"><img src="/img/girl.png" alt="Image 3"></div>
<?php OwlCarouselWidget::end(); ?>
但问题是,如何将小部件的结果作为HTML并将其放入变量$contentImages
?
答案 0 :(得分:0)
好的,我刚刚发现了如何解决我的问题。
我将小部件代码放到一个视图页面。
然后,在我的另一个视图中,我把这段代码:
function read($file) {
ob_start();
include($file);
$content = ob_get_contents();
ob_end_clean();
return $content;
}
$contentImages = read(__DIR__ .'/widgets/widget-view.php')
实际上我不确定,如果这个解决方案是安全的,但还可以。
答案 1 :(得分:0)
从控制器中你可以像这样得到它
$viewParams = [
'localViewVariable' = 'something'
];
$content = $this->renderPartial('@views/widgets/widget-view', $viewParams);
// or
$content = $this->view->renderPhpFile('/full/path/to/widget.php', $viewParams);