如何在控制器中获取块方法?


8

我的阻止文件路径是

app\code\local\Company\Modulename\Block\Product\View\View.php

在此文件中,方法名称为getId()

现在如何在控制器中调用此方法?

Answers:


13

嗨,您可以通过在控制器上使用以下代码来调用此块。

$block=$this->getLayout()->createBlock('blockPrefix/product_view_view');

$Id=$block->getId();

块前缀在app \ code \ local \ Company \ Modulename \ Block \ Product \ View \ View.php下的标签下定义

   <blocks>
        <blockPrefix><!-- guess that modulePrefix is your module block prefix -->
        <class>Company_Modulenam_Block</class>
        </blockPrefix>
    </blocks>

在此处了解如何调用阻止检查


12

如果您的块已经附加到控制器的动作上,则可以像这样调用它

$this->getBlock('block.name.here')->getId()

如果该块与您当前的动作无关,则可以这样调用:

Mage::getBlockSingleton('[module]/product_view')->getId()

2
我不确定第二个示例是否可以工作,至少不能在1.9.2.1中工作。该方法的doc块说它已被弃用,并且使用self::helper()它本身就是奇怪的,因为块和助手是不同的东西!
罗比·阿弗里尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.