¿Cómo obtener el método de bloqueo en el controlador?

8

Mi ruta de archivo de bloque es

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

En este archivo, el nombre del método es getId ()

¿Ahora cómo llamar a llamar a este método en el controlador?

ND17
fuente

Respuestas:

13

Hola, puedes llamar a este bloque usando el siguiente código en el controlador.

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

$Id=$block->getId();

El prefijo de bloque se define en app \ code \ local \ Company \ Modulename \ Block \ Product \ View \ View.php bajo la etiqueta

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

Vea cómo llamar a un cheque en bloque aquí

Amit Bera
fuente
12

Si su bloque ya está conectado a la acción del controlador, puede llamarlo como

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

Si el bloque no tiene nada que ver con su acción actual, puede llamarlo así:

Mage::getBlockSingleton('[module]/product_view')->getId()
Marius
fuente
2
No estoy seguro de que el segundo ejemplo funcione, al menos no en 1.9.2.1. El bloque de documentos del método dice que está en desuso y self::helper()que es extraño en sí mismo, ¡porque los bloques y los ayudantes son cosas diferentes!
Robbie Averill