Wie kann ich eine Blockfunktion in einem beliebigen HTML aufrufen? Zum Beispiel, wenn ich meine benutzerdefinierte Blockfunktion in product list.phtml aufrufen möchte?
32
Versuchen Sie es so.
Zum Beispiel ist Ihre Blockklasse
<?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>';
}
}
Dann können Sie in jeder HTML-Datei den folgenden Code verwenden, um die Methode dieses Blocks abzurufen.
<?php
$blockObj= $block->getLayout()->createBlock('Company\Helloworld\Block\Main');
echo $blockObj->getMyCustomMethod();
?>
Hoffe das hilft dir.
Wenn die Vorlage mit dem Block verknüpft ist, zum Beispiel:
Und Sie haben eine öffentliche Methode
myMethod()
definiert, in derVendor\Module\Block\Name
Sie Folgendes aufrufen könnenname.phtml
:quelle
$block->myMethod();
ODER$this->myMethod();
?$this->myMethod()
, für Magento 2 ist es$block->myMethod()
Platzieren Sie Ihre Blockdatei im Stammverzeichnis Ihres Moduls /Block/Ihre_Blockdatei.php (merken Sie sich den ersten Großbuchstaben des Benutzers für Ordner und Datei).
App / Code / Ihr / Modul / Block / Your_block_file.php
Verknüpfen Sie dann Ihre Blockdatei mit der Vorlage in der Datei view / frontend / layout / your_file.xml, die Sie als Blockdatei definiert haben
App / Code / Your / Module / view / frontend / layout / your_file.xml (Wenn Sie routes.xml verwenden, stellen Sie sicher, dass der Name Ihrer Datei wie zum Beispiel frontname_controllerFolder_FileUnderControlerFolder.xml sein muss.)
Definieren Sie dann Ihre Vorlagendatei in App / Code / Your / Module / view / frontend / templates / your_template.phtml
So können Sie Blockfunktionen in einer Vorlagendatei aufrufen
quelle