当前位置: 首页 > 知识库问答 >
问题:

如何在Magento2中调用phtml文件中的块函数?

南门正业
2023-03-14

我正在Magento2中创建自定义模块。我想在phtml文件中调用块函数。但这并不奏效。请帮帮我.

这是我在adminhtml文件夹文件中的块。

namespace Question\Topic\Block\Adminhtml;

class Topic extends  \Magento\Framework\View\Element\Template {


    public function getSample() {

             return "abhishek";

    }

}

view/adminHTML/layout中的topic_order_view.xml文件是

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Magento\Framework\View\Element\Template" name="view" template="Questions_Topic::view.phtml" />
        </referenceContainer>
    </body>
</page>

下面是我的控制器,位于controller/adminHTML/order/view.php中--

namespace Question\Topic\Controller\Adminhtml\Order;

use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\App\Config\ScopeConfigInterface;

class View extends \Magento\Backend\App\Action
{

    /**
     * @var PageFactory
     */
     protected $resultPageFactory;
    /**
     * @var scopeConfig
     * Needed to retrieve config values
     */
    protected $scopeConfig;



   public function __construct(
        Context $context,
        PageFactory $resultPageFactory,
        ScopeConfigInterface $scopeConfig // Needed to retrieve config values
    ) {
        parent::__construct($context);
        $this->resultPageFactory = $resultPageFactory;
        $this->scopeConfig = $scopeConfig; // Needed to retrieve config values
    }

      public function execute()
    {
        $resultPage = $this->resultPageFactory->create();

        $resultPage->getConfig()->getTitle()->prepend(__('Orders')); // 

         return $resultPage;

    }
}

view/adminHTML/templates/order/view.phtml中的我的view.phtml文件

<?php
//echo $this->getSample();
echo $block->getSample();

?>

<h1>Hello </h1>

显示的是“你好”字。但不回显上述分组码

事先谢谢..

共有1个答案

双弘益
2023-03-14

您应该“告诉”您的布局您想要传递给内容的块。

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Question\Topic\Block\Adminhtml\Topic" name="question.topic.view" template="Questions_Topic::view.phtml" />
        </referenceContainer>
    </body>
</page>
 类似资料:
  • 我想渲染一个。但是,当我尝试使用Apache时,它将页面呈现为文本而不是html。 在vhost配置中,如果我尝试呈现索引。php,它可以正确执行。但是当我将DirectoryIndex更改为index时。phtml并尝试呈现索引。phtml存在于公共目录中,它只是呈现文本。 vhost配置为:ServerName parminder。com DocumentRoot“C:/workspace/p

  • 问题内容: 当在html页面中单击某个链接时,是否可以调用python函数? 谢谢 问题答案: 您将需要使用Web框架将请求路由到Python,因为您不能仅使用HTML来做到这一点。Flask是一个简单的框架: server.py : templates / template.html : 使用运行它,然后导航到http:// localhost:5000 / 。开发服务器不安全,因此要部署您的应

  • function参数是一个数组。现在我将如何在一个特性文件中调用函数。当我尝试下面的代码 我收到以下错误: 中读取属性“length” 我已经打印了并且它正确地出现在print语句中。

  • 问题内容: 这是来自三个文件的一些示例代码: 我需要动态获取调用方函数的文件路径,而无需传递任何额外的参数。 问题答案: 您需要弄弄的内部运作。请参阅:有关JavaScript Stack Trace API的Wiki条目 。 我已经对提议的提交中的某些代码进行了一些测试,它似乎可以工作。您最终会走上一条绝对之路。 以及一个包含模块的测试: 您将在控制台上找到的绝对路径。 说明 这不是一个“ no

  • 这里有一个问题,我在React.js应用程序中有一个FormControl组件,我在其中呈现了几种不同类型的其他组件。例如,在下面的代码中,您可以看到我呈现了一个CheckBoxWithLabel。你会注意到我传递了一个函数 因此,在CheckBoxWithLabel组件(代码未显示)中,我可以使用onChange事件(react中复选框的内置事件)调用它 因此,结果是,当单击复选框时,会调用父组

  • 问题内容: 我正在执行以下操作,但没有用 我正在调用一个返回游标的函数,所以我猜是问题所在 还有另一种方法吗? 问题答案: 我认为您的意思是参考光标。这是一个PL / SQL构造,用作指向查询返回的一组记录的指针。这意味着它必须由运行查询的客户端解释。例如,我们可以将Ref Cursor映射到JDBC或ODBC ResultSet。 您的基本声明当然没有错。这是一个类似于您自己的函数: 我可以在更