Bagaimana saya bisa memanggil fungsi blok apa saja di phtml apa saja? Misalnya jika saya ingin memanggil fungsi blok khusus saya di list.phtml produk?
32
Coba seperti ini.
Misalnya, kelas blok Anda
<?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>';
}
}
lalu dalam file phtml apa pun Anda dapat menggunakan kode berikut untuk mendapatkan metode blok ini.
<?php
$blockObj= $block->getLayout()->createBlock('Company\Helloworld\Block\Main');
echo $blockObj->getMyCustomMethod();
?>
Semoga ini bisa membantu Anda.
Jika templat ditautkan ke blok, misalnya:
Dan Anda memiliki metode publik yang
myMethod()
ditentukan di dalamVendor\Module\Block\Name
Anda dapat memanggil yang berikut diname.phtml
:sumber
$block->myMethod();
ATAU$this->myMethod();
?$this->myMethod()
, untuk Magento 2 itu$block->myMethod()
Tempatkan File blok Anda di direktori root modul /Block/Your_block_file.php Anda (ingat untuk menggunakan huruf kapital pertama untuk folder dan file).
App / Kode / Anda / Modul / Blok / Your_block_file.php
Kemudian tautkan file blok Anda dengan template dalam tampilan / frontend / layout / file_file.xml Anda menentukan file blok
App / Code / Your / Module / view / frontend / layout / your_file.xml (jika Anda menggunakan rute.xml pastikan nama file Anda harus seperti misalnya. Frontname_controllerFolder_FileUnderControlerFolder.xml)
Kemudian Definisikan file template Anda di App / Code / Your / Module / view / frontend / templates / your_template.phtml
Itulah cara Anda memanggil fungsi Blok dalam file template
sumber