Wie bekomme ich die Blockmethode im Controller?

8

Mein Blockdateipfad ist

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

In dieser Datei lautet der Methodenname getId ()

Wie rufe ich diese Methode im Controller auf?

ND17
quelle

Antworten:

13

Hallo, Sie können diesen Block mit dem folgenden Code am Controller aufrufen.

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

$Id=$block->getId();

Das Blockpräfix wird unter app \ code \ local \ Company \ Modulename \ Block \ Product \ View \ View.php unter dem Tag definiert

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

Siehe, wie ein Block - Check ruft an hier

Amit Bera
quelle
12

Wenn Ihr Block bereits mit der Aktion des Controllers verbunden ist, können Sie ihn wie folgt aufrufen

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

Wenn der Block nichts mit Ihrer aktuellen Aktion zu tun hat, können Sie ihn wie folgt aufrufen:

Mage::getBlockSingleton('[module]/product_view')->getId()
Marius
quelle
2
Ich bin mir nicht sicher, ob das zweite Beispiel funktioniert, zumindest nicht in 1.9.2.1. Der doc-Block der Methode sagt, dass er veraltet und zu verwenden ist, self::helper()was an sich seltsam ist, weil Blöcke und Helfer verschiedene Dinge sind!
Robbie Averill