4

如何以编程方式从布局中检索容器?

我希望能够执行以下操作...

$container = $layout->getContainer('name');
$container->setAttribute('htmlClass', 'class');
4

2 回答 2

2

所以我就是那个人,尽量不要直接使用对象管理器。直接使用还是不使用ObjectManager?

<?= $block->getLayout()->renderNonCachedElement('top-right-wrapper'); ?>
-or-
<?= $this->getLayout()->renderNonCachedElement('top-right-wrapper'); ?>

以上两种方法都可以,但不鼓励使用 $this。Magento 2 模板:使用$block$this

于 2018-06-20T22:45:14.960 回答
1

在核心调试很少的情况下,我发现有一种方法可以使用名称作为参数返回任何容器、块或 UIcomponent html。

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$layoutObj = $objectManager->get('Magento\Framework\View\Layout');
$html = $layoutObj->renderNonCachedElement('top-right-wrapper');
echo $html;

* 将右上角的包装器替换为您的块、容器或 UI 组件名称。

于 2017-02-21T18:57:55.753 回答