Magento 2-サンプルモジュールに空白のページが表示される


7

Magento 2バージョンbeta-1.0.0を使用して、シンプルな新しいカスタムモジュールを作成しようとしています。カスタムモジュールは機能しますが、本文のコンテンツに空白のページが表示されます。

モジュールは以下のように行われます。

フォルダ構造:こんにちは

-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

ファイルは以下の通りです。

(1)app / code / Magento / Hello / 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 / Hello / etc / frontend / 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="hello" frontName="hello">
            <module name="Magento_Hello"/>
        </route>
    </router>
</config>

(3)app / code / Magento / Hello / 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 / Hello / Block / Hello.php

<?php
namespace Magento\Hello\Block;

class Hello extends \Magento\Framework\View\Element\Template
{
    public function _prepareLayout()
    {
        return parent::_prepareLayout();
    }
}

(5)app / code / Magento / Hello / view / 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 / Hello / view / frontend / templates / hello.phtml

<?php echo "This is simple hello module on Magento 2.0"; ?>

モジュールが作成されたら、Magentoのセットアップも更新しました。

cd [magento2_root_folder_path]
php bin / magento setup:upgrade

そして私が行くなら

http:// localhost / magento2 / hello / index / index「body」タグの下に空白が表示されます。タイトルと一緒に「head」タグが表示されるので、モジュールが正しくロードされていると確信しています。

任意の助けをいただければ幸いです。


一目で何も悪いところを見ないでください。ポイントの後に空白が表示されると、PHPエラーが示唆されます。サーバーのPHPエラーログを確認しましたか?またはエラー表示を有効にしてみましたか?
Ryan Hoerr、2015

@ライアン:はい、PHPエラーログを確認しましたが、何も表示されません。index.phpにerror_reporting(E_ALL)&ini_set( 'display_errors'、 '1')を追加してエラー表示を有効にしました。しかし、エラーは表示されませんでした。<title>タグは正しく表示されているため、モジュールは機能しているようですが、<body>タグの下には何もありません。
Oshan 2015

Magentoとモジュール構造の間のレベルが不足しているように見えるので、これは正しいフォルダー構造ですか。おそらくタイプミスですが、「Hello」に含める必要があります。
Smartie 2015

@Smartie:悪い。はい、それはタイプミスです。質問を更新しました。
Oshan 2015

1
ファイルlayout="2columns-left"pageノードにこれを追加してみてくださいhello_index_index.xml
マリウス

回答:


17

ページのレイアウトを指定する必要があります。
したがって、これlayout="2columns-left"をの<page>ノードに追加しますhello_index_index.xml
また、使用することができ1column2columns-right3columnsまたはempty


このマリウスのエラーログはありますか?そうでなければ私はgitで問題を開くかもしれません。
LM_Fielding 2017年

何も思いつきません。
マリウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.