Как получить блочный метод в контроллере?

8

Мой путь к файлу блока

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

В этом файле имя метода getId ()

Теперь, как вызвать вызов этого метода в контроллере?

ND17
источник

Ответы:

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. Блок документа метода говорит, что он устарел и использовать его, self::helper()что странно само по себе, потому что блоки и помощники - это разные вещи!
Робби Аверилл