Magento2'de özel modül oluşturma ölümcül hatayı gösteriyor


9

Magento 2'de özel modül oluşturmaya çalışıyorum, ama çalışmıyor. Bana nerede yanlış gittiğimi önerebilir misin?

Modül kodum:

Uygulamanın / etc / config.php:

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

Uygulamanın / kod / Ramesh / Numune / 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>

Uygulamanın / kod / Ramesh / Numune / etc / kullanıcı arayüzü / 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>

Uygulamanın / kod / Ramesh / Numune / Kontrolör / Index / 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;
    }
}

Uygulamanın / kod / Ramesh / Numune / Blok / sample.php

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

Uygulamanın / kod / Ramesh / Numune / görünümler / kullanıcı arayüzü / düzeni / 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>

Uygulamanın / kod / Ramesh / Numune / görünüm / kullanıcı arayüzü / templates / sample.phtml

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

Ama şu hatayı aldım:

a: 4: {i: 0; s: 380: "Kurtarılabilir Hata: Ramesh \ Sample \ Controller \ Index \ Index :: __ construct () işlevine geçirilen Argüman 2, Magento \ Framework \ View \ Result \ PageFactory örneği olmalıdır, hiçbir satır verilmez, var / generation / Ramesh / Sample / Controller / Index / Index / Interceptor.php satır 14'te çağrılır ve app / code / Ramesh / Sample / Controller / Index / Index.php satır 14'te tanımlanır "; i: 1; s: 6109: "# 0 app / code / Ramesh / Örnek / Denetleyici / Dizin / Index.php (14): Magento \ Framework \ App \ ErrorHandler-> işleyici (4096, 'Bağımsız Değişken 2 geçişi ...', '/ var / www / html / m ...', 14, Dizi)


Aşağıdaki bağlantıya bakın Magento 2'de Özel Modül nasıl oluşturulur? magento.stackexchange.com/questions/54609/…
Manoj Kumar

Yanıtlar:


29

modülünüzü var / generation / vendor-name / modülünüzden silmeyi deneyin ve sayfayı yenilemeyi deneyin ve çalışıp çalışmadığını kontrol edin.


Neden var / generation klasörünün tamamını silmeliyim? Daha hızlı bir süreç var mı? Her seferinde bin / magento setup: di: compile komutunu çalıştırmam gerekir mi?
tester

1
Tüm var / generation klasörünü silmenize gerek yoktur Modülünüzün doğru klasörünü belirlemeye çalışın Örnek: var / generation içindeki Demo / Modül. Kod kutusu / magento setup: di: compile yalnızca bağımlılıkları ayarlarsanız çalışır .xml'de ayarlanan kod oluşturma veya kod oluşturma kalıpları
Niranjan B

Bu, kontrolörlerle çalışırken başıma geldi ve ben de aynı şekilde düzelttim, ama biri bunun neden ilk etapta olduğunu açıklayabilir mi?
diazwatson

yukarıdaki kodu denedim ve belirtilen şekilde silinmiş ancak hala hata gösteriyor - HTTP ERROR 500,
amit_game

10

Aşağıda belirtilen komutu kullanabilir ve sonra sayfayı yenileyebilirsiniz.

php bin/magento setup:upgrade

Benim için çalıştı
WaPoNe

Harika;) Benim için çalışıyor
AbdulBasit

1

Yapıcıda aşağıda verilen kodu değiştirin

$this->_pageFactory = $pageFactory;
return parent::__construct($context);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.