Comment appeler une fonction de blocage dans un phtml? Par exemple, si je souhaite appeler ma fonction de blocage personnalisée dans product list.phtml?
32
Essayez comme ça.
Par exemple, votre classe de bloc est
<?php
namespace Company\Helloworld\Block;
use Magento\Framework\View\Element\Template;
class Main extends Template
{
public function getMyCustomMethod()
{
return '<b>I Am From MyCustomMethod</b>';
}
}
Dans n'importe quel fichier phtml, vous pouvez utiliser le code suivant pour obtenir la méthode de ce bloc.
<?php
$blockObj= $block->getLayout()->createBlock('Company\Helloworld\Block\Main');
echo $blockObj->getMyCustomMethod();
?>
J'espère que cela vous aide.
Si le modèle est lié au bloc, par exemple:
Et vous avez une méthode publique
myMethod()
définie dansVendor\Module\Block\Name
vous pouvez appeler ce qui suit dansname.phtml
:la source
$block->myMethod();
OU$this->myMethod();
?$this->myMethod()
, pour Magento 2 c'est$block->myMethod()
Placez votre fichier bloc dans le répertoire racine de votre module /Block/Your_block_file.php(remember à la première lettre majuscule de l'utilisateur pour le dossier et le fichier).
App / Code / Votre / Module / Bloc / Votre_blocage_fichier.php
Ensuite, liez votre fichier de blocage au modèle dans le fichier view / frontend / layout / your_file.xml que vous avez défini le fichier de blocage.
App / Code / Votre / Module / view / frontend / layout / votre_fichier.xml (si vous utilisez routes.xml, assurez-vous que le nom de votre fichier doit ressembler à, par exemple, frontname_controllerFolder_FileUnderControlerFolder.xml)
Ensuite, définissez votre fichier de modèle dans App / Code / Votre / Module / view / frontend / templates / your_template.phtml.
C’est comment vous pouvez appeler des fonctions de blocage dans un fichier de modèle
la source