Domanda

Ho creato un'estensione per Magento su Magento 2 1.0.0 beta.Ora sto cercando di far funzionare questa estensione per Magento 2 RC, ma non riesco a capirlo.Quello che ho è un'estensione molto semplice che crea uno spettacolo di blocco posso mostrare tutte le mie categorie nella barra laterale (indipendentemente da quale categoria sto visualizzando).L'estensione ha funzionato perfetto su Magento 1.0.0 Beta, ma ora fornisce questo errore: Tipo di blocco non valido: \ sl \ latebar \ Block \ Sidebar.L'estensione è installata correttamente.Questo è il codice del mio blocco:

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

Poi nel mio tema carico il blocco come questo:

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

Registrazione.php:

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

L'estensione ha funzionato perfetto su Magento 1.0.0 Beta.Qualcuno conosce il problema qui?

È stato utile?

Soluzione

Ho avuto lo stesso problema con la mia configurazione.

Quando Magento 2 è installato con il programma di installazione compositore, il caricatore automatico non è riuscito a trovare la classe.

Per risolvere questo problema, è necessario aggiungere la seguente riga nella sezione psr-4 del tuo file composer root.json.

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

Quindi eseguire composer install e verrà trovato la classe

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top