Magento 2 RC - неверный тип блока
-
13-12-2019 - |
Вопрос
Я создал расширение для 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
, а класс будет найден