Вопрос

Я создал расширение для Magento на Magento 2 1.0.0 Beta.Теперь я пытаюсь получить это расширение, работаю на Magento 2 RC, но я не могу понять это.То, что у меня есть очень простое расширение, которое создает блок-шоу, которое я могу показать все мои категории в боковой панели (независимо от того, какую категорию я просматриваю).Расширение работало идеально на Beta Magento 1.0.0, но теперь дает эту ошибку: неверный тип блока: \ SL \ Sidebar \ Block \ боковая панель.Расширение установлено правильно.Это код моего блока:

namespace SL\Sidebar\Block;

use Magento\Framework\View\Element\Template;

class Sidebar extends Template {

    /**
     * @var \Magento\Catalog\Helper\Category
     */
    protected $_categoryHelper;

    /**
     * @var \Magento\Framework\Registry
     */
    protected $_coreRegistry;

    /**
     * @var \Magento\Catalog\Model\Indexer\Category\Flat\State
     */
    protected $categoryFlatConfig;

    /**
     * @param Template\Context                                   $context
     * @param \Magento\Catalog\Helper\Category                   $categoryHelper
     * @param \Magento\Framework\Registry                        $registry
     * @param \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState
     */
    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Catalog\Helper\Category $categoryHelper,
        \Magento\Framework\Registry $registry,
        \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState,
        $data = []
    ) {
        $this->_categoryHelper = $categoryHelper;
        $this->_coreRegistry = $registry;
        $this->categoryFlatConfig = $categoryFlatState;

        parent::__construct($context, $data);
    }

    /**
     * Get all categories
     *
     * @return array|\Magento\Catalog\Model\Resource\Category\Collection|\Magento\Framework\Data\Tree\Node\Collection
     */
    public function getCategories()
    {
        return $this->_categoryHelper->getStoreCategories();
    }
}
.

Тогда в моей теме я загружаю блок так:

<block class="SL\Sidebar\Block\Sidebar" name="category-sidebar" template="Magento_Theme::html/sidebar.phtml" />
.

Регистрация .php:

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'SL_Sidebar',
    __DIR__
);
.

Расширение работал идеально подходит на Beta Magento 1.0.0.Кто-нибудь знает эту проблему здесь?

Это было полезно?

Решение

У меня была та же проблема с моей настройкой.

Когда Magento 2 установлен с помощью установщика композитора, автозагрузчик не смог найти класс.

Чтобы решить это, вы должны добавить следующую строку в разделе psr-4 вашего файла root composer.json.

"SL\\": "app/code/SL/"
.

Затем запустить composer install, а класс будет найден

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top