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


8

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

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

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

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

Ответы:


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()что странно само по себе, потому что блоки и помощники - это разные вещи!
Робби Аверилл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.