Ich verwende Magento 2 Version Beta-1.0.0 und versuche, ein einfaches neues benutzerdefiniertes Modul zu erstellen. Das benutzerdefinierte Modul funktioniert, zeigt jedoch eine leere Seite zum Textinhalt an.
Das Modul wird wie folgt ausgeführt.
Ordnerstruktur: Hallo
-app
-code
-Magento
-Hello
-Block
--Hello.php
-Controller
-Index
--Index.php
-etc
--module.xml
-frontend
--routes.xml
-view
-frontend
-layout
--hello_index_index.xml
-templates
--hello.phtml
Dateien sind wie folgt.
(1) app / code / Magento / Hallo / 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="Magento_Hello" setup_version="0.0.1"/>
</config>
(2) App / Code / Magento / Hallo / etc / Frontend / Routen.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="hello" frontName="hello">
<module name="Magento_Hello"/>
</route>
</router>
</config>
(3) app / code / Magento / Hallo / Controller / Index / Index.php
class Index extends \Magento\Framework\App\Action\Action
{
protected $resultPageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
return $this->resultPageFactory->create();
}
}
(4) app / code / Magento / Hallo / Block / Hallo.php
<?php
namespace Magento\Hello\Block;
class Hello extends \Magento\Framework\View\Element\Template
{
public function _prepareLayout()
{
return parent::_prepareLayout();
}
}
(5) app / code / Magento / Hallo / Ansicht / Frontend / Layout / hello_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>Hello to Magento 2.0</title>
</head>
<body>
<referenceContainer name="content">
<block class="Magento\Hello\Block\Hello" name="hello" template="hello.phtml" />
</referenceContainer>
</body>
</page>
(6) app / code / Magento / Hallo / view / frontend / templates / hello.phtml
<?php echo "This is simple hello module on Magento 2.0"; ?>
Nach dem Erstellen des Moduls habe ich auch das Magento-Setup aktualisiert.
cd [magento2_root_folder_path]
php bin / magento setup: upgrade
Und wenn ich gehe
http: // localhost / magento2 / hello / index / index wird unter dem Tag "body" leer angezeigt . Ich bin sicher, dass das Modul ordnungsgemäß geladen wird, da das "head" -Tag mit dem Titel angezeigt wird.
Jede Hilfe wäre sehr dankbar.
quelle
layout="2columns-left"
auf dempage
Knoten in derhello_index_index.xml
Datei hinzuzufügenAntworten:
Sie müssen das Layout für die Seite angeben.
Fügen Sie dies also
layout="2columns-left"
auf dem<page>
Knoten in hinzuhello_index_index.xml
.Sie können auch verwenden
1column
,2columns-right
,3columns
oderempty
.quelle