Como obter o método de bloco no controlador?

8

O caminho do meu arquivo de bloqueio é

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

Nesse arquivo, o nome do método é getId ()

Agora, como chamar chamar este método no controlador?

ND17
fonte

Respostas:

13

Oi, você pode chamar esse bloco usando o código abaixo no controlador.

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

$Id=$block->getId();

O prefixo do bloco é definido em app \ code \ local \ Company \ Modulename \ Block \ Product \ View \ View.php na tag

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

Veja como chamar uma verificação de bloco aqui

Amit Bera
fonte
12

Se o seu bloco já estiver anexado à ação do controlador, você pode chamá-lo como

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

Se o bloco não tem nada a ver com sua ação atual, você pode chamá-lo como:

Mage::getBlockSingleton('[module]/product_view')->getId()
Marius
fonte
2
Não sei se o segundo exemplo funciona, pelo menos não no 1.9.2.1. O bloco de documentos do método diz que está obsoleto e self::helper()que, por si só, é estranho, porque blocos e auxiliares são coisas diferentes!
Robbie Averill