जवाबों:
ऐसे में कोशिश करें।
पूर्व के लिए आपका ब्लॉक वर्ग है
<?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>';
}
}
फिर किसी भी phtml फ़ाइल में आप इस ब्लॉक की विधि प्राप्त करने के लिए निम्न कोड का उपयोग कर सकते हैं।
<?php
$blockObj= $block->getLayout()->createBlock('Company\Helloworld\Block\Main');
echo $blockObj->getMyCustomMethod();
?>
आशा है कि यह आपकी मदद करता है।
यदि टेम्पलेट ब्लॉक से जुड़ा हुआ है, उदाहरण के लिए:
<block class="Vendor\Module\Block\Name" name="name" template="Vendor_Module::name.phtml"/>
और आपके पास एक सार्वजनिक विधि है myMethod()
जिसे Vendor\Module\Block\Name
आप निम्न में परिभाषित कर सकते हैं name.phtml
:
$block->myMethod();
$block->myMethod();
या $this->myMethod();
?
$this->myMethod()
, Magento 2 के लिए यह$block->myMethod()
अपने मॉड्यूल /Block/Your_block_file.php(remember उपयोगकर्ता फ़ोल्डर और फ़ाइल के लिए पहला पत्र) की जड़ निर्देशिका में अपने ब्लॉक फ़ाइल रखें।
ऐप्स / कोड / आपका / मॉड्यूल / ब्लॉक / Your_block_file.php
<?php
namespace Your\Module\Block;
class Your_block_file extends \Magento\Framework\View\Element\Template
{
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Framework\Registry $registry
* @param \Magento\Framework\Data\FormFactory $formFactory
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Data\FormFactory $formFactory,
array $data = []
)
{
parent::__construct($context, $data);
}
/**
* Get form action URL for POST booking request
*
* @return string
*/
public function getFormAction()
{
die('Hello World');
}
}
फिर अपनी ब्लॉक फाइल को टेम्पलेट / व्यूएंड / लेआउट / your_file.xml फ़ाइल से लिंक करें जिसे आपने ब्लॉक फाइल परिभाषित किया है
ऐप / कोड / आपका / मॉड्यूल / दृश्य / दृश्य / लेआउट / your_file.xml (यदि आप मार्गों का उपयोग कर रहे हैं। xml सुनिश्चित करें कि आपकी फ़ाइल का नाम पूर्व के लिए जैसा होना चाहिए। frontname_controllerFolder_FileUnerControlerFolder.xml)
<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>{Page Title</title>
</head>
<body>
<referenceContainer name="content">
<block class="Your/Module/Block/Your_block_file" name="gridpage.form" template="Your_Module:: your_template.phtml"/>
</referenceContainer>
</body>
</page>
फिर ऐप / कोड / अपने / मॉड्यूल / दृश्य / दृश्य / टेम्पलेट / your_template.phtml में अपनी टेम्पलेट फ़ाइल को परिभाषित करें
<?= $block->getFormAction(); ?>
आप टेम्पलेट फ़ाइल में ब्लॉक कार्यों को कैसे कॉल कर सकते हैं