Como posso chamar qualquer função de bloco em qualquer phtml? Por exemplo, se eu quiser chamar minha função de bloco personalizado no produto list.phtml?
32
Tente assim.
Por ex, sua classe de bloco é
<?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>';
}
}
em qualquer arquivo phtml, você pode usar o código a seguir para obter o método desse bloco.
<?php
$blockObj= $block->getLayout()->createBlock('Company\Helloworld\Block\Main');
echo $blockObj->getMyCustomMethod();
?>
Espero que isso ajude você.
Se o modelo estiver vinculado ao bloco, por exemplo:
E você tem um método público
myMethod()
definido,Vendor\Module\Block\Name
pode chamar o seguinte emname.phtml
:fonte
$block->myMethod();
OU$this->myMethod();
?$this->myMethod()
, for Magento 2 it's$block->myMethod()
Coloque seu arquivo de bloco no diretório raiz do seu módulo /Block/Your_block_file.php(remember ao usuário primeira letra maiúscula para pasta e arquivo).
App / Código / Seu / Módulo / Bloco / Seu_block_arquivo.php
Em seguida, vincule seu arquivo de bloco ao modelo no arquivo view / frontend / layout / your_file.xml que você definiu
App / Code / Your / Module / view / frontend / layout / your_file.xml (se você estiver usando routes.xml, verifique se o nome do seu arquivo deve ser como, por exemplo, frontname_controllerFolder_FileUnderControlerFolder.xml)
Em seguida, defina seu arquivo de modelo em App / Code / Your / Module / view / frontend / templates / your_template.phtml
É assim que você pode chamar as funções de Bloco no arquivo de modelo
fonte