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?

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


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()

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.