Comment obtenir la méthode des blocs dans le contrôleur?

8

Le chemin de mon fichier de blocage est

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

Dans ce fichier, le nom de la méthode est getId ()

Maintenant, comment appeler appeler cette méthode dans le contrôleur?

ND17
la source

Réponses:

13

Salut, vous pouvez appeler ce bloc en utilisant le code ci-dessous sur le contrôleur.

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

$Id=$block->getId();

Le préfixe de bloc est défini dans app \ code \ local \ Company \ Modulename \ Block \ Product \ View \ View.php sous la balise

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

Découvrez comment appeler une vérification de blocage ici

Amit Bera
la source
12

Si votre bloc est déjà attaché à l'action du contrôleur vous pouvez l'appeler comme

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

Si le bloc n'a rien à voir avec votre action actuelle, vous pouvez l'appeler comme:

Mage::getBlockSingleton('[module]/product_view')->getId()
Marius
la source
2
Je ne suis pas sûr que le deuxième exemple fonctionne, du moins pas dans 1.9.2.1. Le bloc doc de la méthode dit qu'il est obsolète et self::helper()qu'il est étrange d' utiliser en soi, car les blocs et les assistants sont des choses différentes!
Robbie Averill