Frage

Ich habe eine Erweiterung für Magento auf Magento 2 1.0.0 Beta erstellt.Jetzt versuche ich, diese Erweiterung für Magento 2 RC zum Laufen zu bringen, aber ich komme damit nicht klar.Was ich habe, ist eine sehr einfache Erweiterung, die einen Block erstellt, in dem ich alle meine Kategorien in der Seitenleiste anzeigen kann (unabhängig davon, welche Kategorie ich gerade ansehe).Die Erweiterung funktionierte in der Betaversion von Magento 1.0.0 einwandfrei, gibt jetzt aber diesen Fehler aus:Ungültiger Blocktyp:\SL\Sidebar\Block\Sidebar.Die Erweiterung ist korrekt installiert.Das ist der Code meines Blocks:

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();
    }
}

Dann lade ich in meinem Theme den Block so:

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

Registrierung.php:

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

Die Erweiterung funktionierte perfekt in der Betaversion von Magento 1.0.0.Kennt hier jemand das Problem?

War es hilfreich?

Lösung

Ich hatte das gleiche Problem mit meinem Setup.

Bei der Installation von Magento 2 mit dem Composer-Installationsprogramm konnte der Autoloader die Klasse nicht finden.

Um dieses Problem zu lösen, müssen Sie die folgende Zeile hinzufügen psr-4 Abschnitt Ihrer Root-Composer.json-Datei.

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

Dann renne composer install und die Klasse wird gefunden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top