Tạo mô-đun tùy chỉnh trong magento2 hiển thị lỗi nghiêm trọng


9

Tôi đang làm việc để tạo mô-đun tùy chỉnh trong magento 2, nhưng nó không hoạt động. Bạn có thể vui lòng gợi ý cho tôi nơi tôi đã đi sai?.

Mã mô-đun của tôi:

ứng dụng / etc / config.php:

'modules' => 
  array (
    'Ramesh_Sample' => 1,
         ),

ứng dụng / mã / Ramesh / Mẫu / 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="Ramesh_Sample" schema_version="2.0.0">
    </module>
</config>

ứng dụng / mã / Ramesh / Mẫu / 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="sample" frontName="sample">
            <module name="Ramesh_Sample" />
        </route>
    </router>
</config>

ứng dụng / mã / Ramesh / Mẫu / Trình điều khiển / Chỉ mục / Index.php

<?php
namespace Ramesh\Sample\Controller\Index;

use Magento\Framework\App\Action\Context;
//use \Magento\Framework\View\Result\PageFactory;

class Index extends \Magento\Framework\App\Action\Action
{
    private $_resultPageFactory;

    public function __construct(
        Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory
    )
    {
        parent::__construct($context);
        $this->_resultPageFactory = $resultPageFactory;
    }

    public function execute()
    {
        $result = $this->_resultPageFactory->create();
        return $result;
    }
}

ứng dụng / mã / Ramesh / Mẫu / Khối / Mẫu.php

namespace Magento\Sample\Block;
class Sample extends \Magento\Framework\View\Element\Template
{
}

ứng dụng / mã / Ramesh / Mẫu / lượt xem / frontend / layout / sample_index_index.xml

<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 World</title>
    </head>
    <body>
        <referenceContainer name="content">
            <block class="Sample\Ramesh\Block\Sample" name="sample"      template="sample.phtml">
            </block>
        </referenceContainer>
    </body>
</page>

ứng dụng / mã / Ramesh / Mẫu / xem / frontend / samples / sample.phtml

<?php echo 'Hi I am Magento 2'; ?>

Nhưng tôi đã nhận được lỗi sau:

a: 4: {i: 0; s: 380: "Lỗi có thể phục hồi: Đối số 2 được truyền cho Ramesh \ Sample \ Controller \ Index \ Index :: __ construc () phải là một phiên bản của Magento \ Framework \ View \ result \ PageFactory, không được đưa ra, được gọi trong var / Generation / Ramesh / Sample / Controller / Index / Index / Interceptor.php trên dòng 14 và được định nghĩa trong app / code / Ramesh / Sample / Controller / Index / Index.php trên dòng 14 "; i: 1; s: 6109: "# 0 ứng dụng / mã / Ramesh / Mẫu / Trình điều khiển / Chỉ mục / Index.php (14): Magento \ Framework \ App \ ErrorHandler-> handler (4096, 'Đối số 2 vượt qua ...', '/ var / www / html / m ...', 14, Mảng)


Xem liên kết bên dưới Làm thế nào để tạo Mô-đun tùy chỉnh trong Magento 2? magento.stackexchange.com/questions/54609/ từ
Manoj Kumar

Câu trả lời:


29

hãy thử xóa mô-đun của bạn khỏi var / thế hệ / tên nhà cung cấp / mô-đun của bạn và thử làm mới trang và kiểm tra xem nó có hoạt động không.


Tại sao tôi phải xóa thư mục var / Generation hoàn chỉnh? Có một quá trình nhanh hơn? Tôi có phải chạy cài đặt bin / magento không: di: biên dịch mỗi lần?
người kiểm tra

1
Bạn không cần phải xóa thư mục var / thế hệ hoàn chỉnh, hãy cố gắng xác định thư mục chính xác của mô-đun của bạn Ví dụ: Demo / Module bên trong var / thế hệ. Cài đặt bin / magento code: di: compile chỉ hoạt động nếu bạn đặt phụ thuộc hoặc các mẫu tạo mã được đặt trong di.xml
Niranjan B

Điều này đã xảy ra với tôi khi làm việc với các bộ điều khiển và tôi đã sửa nó theo cùng một cách, nhưng ai đó có thể giải thích tại sao điều này xảy ra ngay từ đầu không?
diazwatson

đã thử cùng mã ở trên và xóa các tệp như đã đề cập nhưng vẫn hiển thị lỗi - HTTP ERROR 500,
amit_game

10

Bạn có thể sử dụng lệnh được đề cập dưới đây và sau đó làm mới trang.

php bin/magento setup:upgrade

Nó hoạt động với tôi
WaPoNe

Tuyệt vời;) Làm việc cho tôi
AbdulBasit

1

Thay thế mã được đưa ra dưới đây trong hàm tạo của bạn

$this->_pageFactory = $pageFactory;
return parent::__construct($context);
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.