@prokopov-vi

В чем ошибка при создании модуля?

Пытаюсь сделать простой первый модуль для Magento2. Делаю все по гайду

Даже все раза 4 проверил - вроде правильно все, но модуль не работает, при переходе по силке say/index/index, должна открываться страница с текстом, но результат - пустая страница бес ошибок!

Делаю все так:

создаю конфиг для модуля: app/Dev/Say/etc/module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <module name="Dev_Say" setup_version="1.0.0">
    </module>
</config>


В корне модуля app/Dev/Say создаю registration.php

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Dev_Say',
    __DIR__
);


Затем делаю роутер для frontend app/Dev/Say/etc/frontend/routes.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="say" frontName="say">
            <module name="Dev_Say"/>
        </route>
    </router>
</config>


Делаю контроллер app/Dev/Say/Controller/Index/index.php

<?php
namespace Dev\Say\Controller\Index;

use Magento\Framework\App\Action\Action;

class Index extends Action
{

    public function execute()
    {
        $this->_view->getLayout();
        $this->_view->getLayout()->initMessages();
        $this->_view->renderLayout();
    }
}


Мой layout
app/Dev/Say/view/frontend/layout/say_index_index.xml


<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Dev\Say\Block\Say" name="lofformbuilder-toplinks" template="Dev_Say::say.phtml"/>
        </referenceContainer>
    </body>
</page>


Создаю блок app/Dev/Say/Block/Say.php

<?php
namespace Dev\Say\Block;

use Magento\Framework\View\Element\Template;
class Say extends Template
{
    public function _prepareLayout()
    {
        return parent::_prepareLayout();
    }

}


И сам шаблон app/Dev/Say/view/frontend/templates/say.phtml

<?php
    echo 'Say template';


Потом регистрирую модуль и делаю php bin/magento setup:upgrade

При открытии say/index/index нет никаких ошибок, просто пустая страница.

В чем может быть моя ошибка ? Возможно я что то упустил ?
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ответы на вопрос 1
@springimport
Не знаю, актуально ли еще? Ну да ладно.

Во-первых, активируйте режим разработчика. Это даст возможность увидеть ошибки прямо на странице.
Во-вторых, вы пишите app/Dev.... когда должно быть app/code/Dev.....
В-третьих, модуль включается так: php -f bin/magento module:enable MyVendor_Module. Вы так включали?

Кстати, у вас контроллер не полный, посмотрите гайд еще раз.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы