我在Magento 2中创建了一个简单的自定义模块。但它不起作用。谁能告诉我哪里出错了?
我的代码是
应用的/ etc / config.xml中
'Sparx_Helloworld' => 1,
应用/代码/的Sparx /的Helloworld的/ etc / module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Sparx_Helloworld" schema_version="0.0.1" active="true">
</module>
</config>
应用/代码/的Sparx /的Helloworld /控制器/索引/ index.php的
<?php
namespace Sparx\Helloworld\Controller\Index;
class Index extends \Magento\Framework\App\Action\Action
{
public function execute()
{
$this->_view->loadLayout();
$this->_view->getLayout()->initMessages();
$this->_view->renderLayout();
}
}
应用/代码/的Sparx /的Helloworld /砌块/ Helloworld.php
<?php
namespace Sparx\Helloworld\Block;
class Helloworld extends \Magento\Framework\View\Element\Template
{
public function _prepareLayout()
{
return parent::_prepareLayout();
}
}
应用/代码/的Sparx /的Helloworld的/ etc /前端/ routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/App/etc/routes.xsd">
<router id="standard">
<route id="helloworld" frontName="helloworld">
<module name="Sparx_Helloworld" />
</route>
</router>
</config>
应用/代码/的Sparx /的Helloworld的/ etc /视图/前端/布局/ helloworld_index_index.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">
<head>
<title>Welcome to Magento World</title>
</head>
<body>
<referenceContainer name="content">
<block name="helloworld" template="helloworld.phtml">
</block>
</referenceContainer>
</body>
</page>
应用/代码/的Sparx /的Helloworld /视图/前端/模板/ helloworld.phtml
<?php echo 'Successful! This is a simple helloworld module in Magento 2'; ?>
我不确定是什么问题。请做好。
由于
答案 0 :(得分:3)
你的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="Sparx_Helloworld" setup_version="0.0.1">
</module>
</config>
如果您正在使用最新版本的magento 2(1.0.0-beta5),那么您在Sparx/Helloworld
registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sparx_Helloworld',
__DIR__
);
您可能需要在命令行中运行php bin/magento setup:upgrade
,而不是在'Sparx_Helloworld' => 1,
文件中添加config.php
答案 1 :(得分:0)
首先,确保您已禁用Magento缓存并已启用开发人员模式。开发者模式将显示所有错误。
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="Sparx_Helloworld" setup_version="1.0.0">
</module>
</config>
要注册模块,您必须具有registration.php
,如下所示:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sparx_Helloworld',
__DIR__
);
您还需要其他文件。
有关Magento 2模块创建的完整教程,请访问:How to Create Magento 2 Module