Magento 2 - Mô-đun mẫu hiển thị trang trống


7

Tôi đang sử dụng phiên bản Magento 2 beta-1.0.0 và đang cố gắng tạo một mô-đun tùy chỉnh mới đơn giản. Mô-đun tùy chỉnh hoạt động nhưng đang hiển thị một trang trống trên nội dung cơ thể.

Các mô-đun được thực hiện theo cách dưới đây.

Cấu trúc thư mục: Xin chào

-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

Các tập tin như sau.

(1) ứng dụng / mã / 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) ứng dụng / mã / Magento / Hello / etc / frontend / Rout.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) ứng dụng / mã / Magento / Hello / Trình điều khiển / 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) ứng dụng / mã / 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) ứng dụng / mã / 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) ứng dụng / mã / Magento / Hello / view / frontend / samples / hello.phtml

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

Khi mô-đun được tạo, tôi cũng đã cập nhật cài đặt Magento.

cd [magento2_root_folder_path]
Thiết lập php bin / magento: nâng cấp

Và nếu tôi đi đến

http: // localhost / magento2 / hello / index / index nó hiển thị trống dưới thẻ "body". Tôi chắc chắn mô-đun đang tải đúng cách vì thẻ "head" xuất hiện cùng với Tiêu đề.

Bất cứ sự giúp đỡ nào cũng được đánh giá cao.


Đừng nhìn thấy bất cứ điều gì sai trong nháy mắt. Trống sau một điểm gợi ý lỗi PHP. Bạn đã kiểm tra nhật ký lỗi PHP của máy chủ chưa? Hoặc đã thử kích hoạt lỗi hiển thị?
Ryan Hoerr

@Ryan: Có, tôi đã kiểm tra nhật ký lỗi PHP và không có gì xuất hiện ở đó. Đã bật hiển thị lỗi bằng cách thêm error_Vporting (E_ALL) & ini_set ('display_errors', '1') trên index.php. Nhưng không xuất hiện bất kỳ lỗi nào. Mô-đun dường như hoạt động vì thẻ <title> xuất hiện chính xác, nhưng không có gì trong thẻ <body>.
O Sơn

Đó có phải là cấu trúc thư mục chính xác bởi vì có vẻ như bạn đang thiếu một cấp độ giữa Magento và cấu trúc mô-đun của bạn. Có lẽ chỉ là một lỗi đánh máy nhưng nên được chứa trong 'Xin chào'.
Smartie

@Smartie: Xấu quá. vâng, đó là một lỗi đánh máy. Tôi đã cập nhật câu hỏi.
O Sơn

1
hãy thử thêm nút này layout="2columns-left"vào pagenút trong hello_index_index.xmltệp
Marius

Câu trả lời:


17

Bạn cần chỉ định bố cục cho trang.
Vì vậy, thêm điều này layout="2columns-left"vào <page>nút trong hello_index_index.xml.
Bạn cũng có thể sử dụng 1column, 2columns-right, 3columnshoặc empty.


Có lỗi đăng nhập cho Marius này? Nếu không tôi có thể mở một vấn đề trên git.
LM_Fielding

Tôi không có ý kiến.
Marius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.