Membuat modul khusus di magento2 menunjukkan kesalahan fatal

9

Saya bekerja membuat modul khusus di magento 2, tetapi tidak berfungsi. Bisakah Anda memberi tahu saya di mana kesalahan saya?

Kode modul saya:

app / etc / config.php:

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

app / code / Ramesh / Sample / 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>

app / code / Ramesh / Sample / 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="sample" frontName="sample">
            <module name="Ramesh_Sample" />
        </route>
    </router>
</config>

app / kode / Ramesh / Sampel / Pengendali / Indeks / 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;
    }
}

app / kode / Ramesh / Sampel / Blok / Sample.php

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

app / code / Ramesh / Sample / views / 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>

app / code / Ramesh / Sample / view / frontend / templates / sample.phtml

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

Tapi saya mendapat kesalahan berikut:

a: 4: {i: 0; s: 380: "Kesalahan Dapat Dipulihkan: Argumen 2 diteruskan ke Ramesh \ Sample \ Controller \ Index \ Index :: __ construct () harus merupakan turunan dari Magento \ Framework \ View \ Result \ PageFactory, tidak ada yang diberikan, dipanggil dalam var / generation / Ramesh / Sample / Controller / Index / Index / Interceptor.php pada baris 14 dan didefinisikan dalam aplikasi / kode / Ramesh / Sampel / Kontroler / Indeks / Index.php pada baris 14 "; i: 1; s: 6109: "# 0 app / code / Ramesh / Sample / Controller / Index / Index.php (14): Magento \ Framework \ App \ ErrorHandler-> handler (4096, 'Argument 2 pass ...', '/ var / www / html / m ...', 14, Array)

Ramesh
sumber
Lihat tautan di bawah ini Cara membuat Modul Kustom di Magento 2? magento.stackexchange.com/questions/54609/…
Manoj Kumar

Jawaban:

29

cobalah untuk menghapus modul Anda dari var / generation / vendor-name / your-module dan cobalah untuk me-refresh halaman dan periksa apakah itu berfungsi.

Niranjan B
sumber
Mengapa saya harus menghapus folder var / generation lengkap? Apakah ada proses yang lebih cepat? Apakah saya harus menjalankan pengaturan bin / magento: di: compile setiap waktu?
tester
1
Anda tidak perlu menghapus folder var / generation lengkap, cobalah untuk mengidentifikasi folder yang benar dari modul Anda. Contoh: Demo / Modul di dalam var / generation. Pengaturan kode / magento: di: kompilasi hanya berfungsi jika Anda mengatur dependensi atau pola pembuatan kode diatur dalam di.xml
Niranjan B
Ini terjadi pada saya saat bekerja dengan pengontrol dan saya memperbaikinya dengan cara yang sama, tetapi bisakah seseorang menjelaskan mengapa ini terjadi?
diazwatson
mencoba kode di atas yang sama dan menghapus file seperti yang disebutkan tetapi masih menunjukkan kesalahan - HTTP ERROR 500,
amit_game
10

Anda dapat menggunakan perintah yang disebutkan di bawah ini dan kemudian menyegarkan halaman.

php bin/magento setup:upgrade
Hardik Shah
sumber
Itu bekerja untuk saya
WaPoNe
Hebat;) Bekerja untuk saya
AbdulBasit
1

Ganti kode yang diberikan di bawah ini di konstruktor Anda

$this->_pageFactory = $pageFactory;
return parent::__construct($context);
NIRAJ SHARMA
sumber