我在magento 2 1.0.0 beta上创建了Magento的扩展名。现在我正在尝试为magento 2 rc工作,但我无法弄清楚。我拥有的是一个非常简单的扩展,创建一个块显示我可以在侧边栏上显示所有类别(无论我正在查看的类别)。扩展确实在Magento 1.0.0 Beta上完善了,但现在给出了此错误:块类型:\ SL \ Sidebar \ Block \ SideBar无效。扩展程序已正确安装。这是我的块代码:

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" />
.

注册:

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

扩展确实在Magento 1.0.0 Beta上工作完美。有谁知道这里的问题吗?

有帮助吗?

解决方案

我的设置有同样的问题。

当使用Composer安装程序安装Magento 2时,Autoloader无法找到该类。

要解决此问题,您必须在root composer.json文件的psr-4部分中添加以下行。

"SL\\": "app/code/SL/"
. 然后,运行生成composer install和该类将被找到

许可以下: CC-BY-SA归因
scroll top