1

我在新的 Magento 2 中并创建了一个自定义模块,它与 url(http:///modulename/index/test) 工作正常,但需要在主页上调用它。我的意思是当主页加载时,模块会被自动调用。怎么可能?

以下是我在模块创建过程中遵循的步骤 -

第 1 步:创建命名空间和模块文件夹

第 2 步:创建 etc/module.xml 文件

<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Ignvia_HelloWorld" setup_version="1.0.0">
</module>

第 3 步:创建 etc/registration.php 文件

<?php

\Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::MODULE, 'Ignvia_HelloWorld', DIR );

第 4 步:创建 etc/frontend/routes.xml 文件

<?xml version="1.0" ?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
    <route frontName="helloworld" id="helloworld">
        <module name="Igniva_HelloWorld"/>
    </route>
</router>

第 5 步:创建 Controller/Index/Test.php

<?php

命名空间 Igniva\HelloWorld\Controller\Index;

类测试扩展 \Magento\Framework\App\Action\Action { protected $_pageFactory;

public function __construct(
    \Magento\Framework\App\Action\Context $context,
    \Magento\Framework\View\Result\PageFactory $pageFactory)
{
    $this->_pageFactory = $pageFactory;
    return parent::__construct($context);
}

public function execute()
{
    echo "Hello World";
    exit;
}

}

谢谢。

4

1 回答 1

0

要在主页加载您的自定义模块,您的代码应该在 cms_index_index 布局中调用(不在核心文件中)。您必须在自定义文件中定义。

于 2018-04-02T07:15:23.777 回答