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?

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


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.