Magento 在主块phtml中调用子块方法

Magento 在主块phtml中调用子块方法,magento,Magento,基本上,我想在我的主块中包含子块,并使用它们的方法 不让他们输入任何html。 如果我有这种结构: <block type="core/template" template"/custom.phtml"> <block type="catalog/product_view_options" /> </block> 这样,当您在xml中写入时,每次需要访问某个方法时,我都不需要在custom.phtml中使用createBlock: <block

基本上,我想在我的主块中包含子块,并使用它们的方法 不让他们输入任何html。

如果我有这种结构:

<block type="core/template" template"/custom.phtml">
  <block type="catalog/product_view_options" />
</block>

这样,当您在xml中写入时,每次需要访问某个方法时,我都不需要在custom.phtml中使用createBlock:

<block type="core/template" template="custom.phtml">

块的类是Mage_Core_block_Template,您可以访问该类及其扩展的类中的任何方法。 所以这里有两个选项,父类扩展子类(我相信这是您想要的,但有点错误)。 在Magento内部,您将看到,对于这一点,您有如下内容:

<block type="core/template" template="custom.phtml">
    <block type="catalog/product_view_options" template="custom_child.phtml" />
</block>

在custom_child.phtml中,您将拥有来自_options_block()的
$this->一些_method_

您还可以使用助手将所有方法都放在一个类中


当您在xml中使用子块时,在父phtml模板中需要做的就是
echo$this->getChildHtml('child_name')
(您不需要
createBlock
)ofc-父类必须定义方法或扩展Mage\u Core\u Block\u抽象(Mage\u Core\u Block\u模板)。您应该在文件夹Mage/Core/Block中查看有关某些核心类的方法的更多信息。

为什么不制作一个自定义块来扩展目录/产品视图选项块呢

<block type="core/template" template="custom.phtml">
    <block type="catalog/product_view_options" template="custom_child.phtml" />
</block>