gpt4 book ai didi

Magento:从布局 xml 文件中设置ParentBlock?

转载 作者:行者123 更新时间:2023-12-02 07:53:18 24 4
gpt4 key购买 nike

存在

public Mage_Core_Block_Abstract::setParentBlock(Mage_Core_Block_Abstract $block)

显然它需要一个 block 对象作为参数。我尝试过:

<reference name="myBlock">
<action method="setParentBlock">
<block><reference name="newParent"/></block>
</action>
</reference>

但是,运气不佳。有什么想法吗?
有人是否有可能从布局文件中将 block 对象传递给方法?

最佳答案

您无法从布局 XML 文件调用该方法。布局 XML 文件的 <action/>节点主要(见下文)用于传递字符串作为参数。这意味着类型提示明确需要对象的任何方法

Mage_Core_Block_Abstract $block

不应该从 XML 中调用。它是系统实现中使用的一种方法,布局 XML 系统旨在防止您意外调用。

此外,您不能按照您尝试的方式使用引用

<reference name="newParent"/>

<reference/>标记仅作为顶级布局句柄的直接祖先有效(在另一个位置使用引用引起的任何其他行为都是意外的实现副作用,我会对依赖所述行为保持警惕)

最后,您也许能够通过使用布局系统的“辅助参数”功能来实现您想要的效果。

<action method="setParentBlock">
<block helper="core/data/someMethod" arg1="foo" ...>
</action>

如果你能找到一个辅助类

Mage::helper('core/data');

哪里someMethod返回您要查找的 block

Mage::helper('core/data')->someMethod(parameters,from,attributes,above);

但是在渲染中更改 block 的父级有点滥用布局系统,我建议不要这样做(除非没有其他方法可以达到您想要的效果)。

关于Magento:从布局 xml 文件中设置ParentBlock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20457025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com