magento2에서 사용자 정의 모듈 생성 치명적 오류 표시


9

magento 2에서 사용자 정의 모듈을 만드는 중이지만 작동하지 않습니다. 내가 어디로 잘못 갔는지 제안 해 주시겠습니까?.

내 모듈 코드 :

app / etc / config.php :

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

앱 / 코드 /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 / code / Ramesh / Sample / Controller / 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;
    }
}

앱 / 코드 /Ramesh/Sample/Block/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'; ?>

그러나 다음과 같은 오류가 발생했습니다.

a : 4 : {i : 0; s : 380 : "복구 가능한 오류 : 인수 2가 Ramesh \ Sample \ Controller \ Index \ Index :: __ construct ()에 전달 된 인수 2는 Magento \ Framework \ View \ Result \ PageFactory의 인스턴스 여야합니다. 14 번째 줄의 var / generation / Ramesh / Sample / Controller / Index / Index / Interceptor.php에서 호출되고 14 번째 줄의 app / code / Ramesh / Sample / Controller / Index / Index.php에 정의되지 않았습니다 "; i : 1; s : 6109 : "# 0 app / code / Ramesh / Sample / Controller / Index / Index.php (14) : Magento \ Framework \ App \ ErrorHandler-> handler (4096, '인수 2 패스 ...', '/ var / www / html / m ...', 14, 배열)


아래 링크를 참조하십시오. Magento 2에서 사용자 정의 모듈을 작성하는 방법은 무엇입니까? magento.stackexchange.com/questions/54609/…
Manoj Kumar

답변:


29

var / generation / vendor-name / your-module에서 모듈을 삭제하고 페이지를 새로 고쳐서 작동하는지 확인하십시오.


전체 var / generation 폴더를 삭제해야하는 이유는 무엇입니까? 더 빠른 프로세스가 있습니까? 매번 bin / magento setup : di : compile을 실행해야합니까?
tester

1
전체 var / generation 폴더를 삭제할 필요는 없습니다. 모듈의 올바른 폴더를 식별하십시오. 예 : var / generation 내의 Demo / Module. 코드 bin / magento setup : di : compile은 종속성을 설정 한 경우에만 작동합니다 또는 di.xml에 설정된 코드 생성 패턴
Niranjan B

이것은 컨트롤러를 사용하면서 나에게 일어 났으며 같은 방식으로 고쳤지만 누군가 왜 이것이 처음에 발생하는지 설명 할 수 있습니까?
diazwatson

위와 동일한 코드를 시도하고 언급 한대로 파일을 삭제했지만 여전히 오류가 표시됩니다-HTTP ERROR 500,
amit_game

10

아래 언급 된 명령을 사용한 다음 페이지를 새로 고칠 수 있습니다.

php bin/magento setup:upgrade

그것은 나를 위해 일했다
WaPoNe

위대한;) 나를 위해 일하고
AbdulBasit

1

생성자에서 아래에 주어진 코드를 교체하십시오.

$this->_pageFactory = $pageFactory;
return parent::__construct($context);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.