2016-01-26 3 views
0

Я начал изучать сетку Magento 2. Я разработал один простой модуль, но я не понял структуру сетки.Magento 2 сетка структура

В Magento 1.9.X, путь был ясен для добавления сетки, но в Magento 2 существует структура. Как добавить сетку в Magento 2?

ответ

3

В Magento 2, вы можете создать сетку с помощью XML (см here)

Однако, вы можете создать сетку с помощью PHP, как Magento 1: Расширение вашего сетки класс «Magento \ Backend \ Block \ Widget \ Сетка \ Расширенная»

<?php 

namespace Yourpackage\Yourmodule\Block\Adminhtml\Sample; 

class Grid extends \Magento\Backend\Block\Widget\Grid\Extended 
{ 
    protected $_yourmodelFactory; 

    public function __construct(
     \Magento\Backend\Block\Template\Context $context, 
     \Magento\Backend\Helper\Data $backendHelper, 
     \Yourpackage\Yourmodule\Model\YourmodelFactory $yourmodelFactory, 
     array $data = [] 
    ) { 
     parent::__construct($context, $backendHelper, $data); 
     $this->_yourmodelFactory = $yourmodelFactory; 
    } 

    protected function _construct() 
    { 
     parent::_construct(); 
     $this->setId('sample_grid'); 
     $this->setDefaultSort('id'); 
     $this->setDefaultDir('DESC'); 
     $this->setSaveParametersInSession(true); 
    } 

    protected function _prepareCollection() 
    { 
     $collection = $this->_yourmodelFactory->create()->getCollection(); 
     $this->setCollection($collection); 

     return parent::_prepareCollection(); 
    } 

    protected function _prepareColumns() 
    { 
     $this->addColumn(
      'id', 
      [ 
       'header' => __('ID'), 
       'align' => 'right', 
       'width' => '50px', 
       'index' => 'id', 
      ] 
     ); 

     // Some columns 

     return parent::_prepareColumns(); 
    } 
} 

Вы можете видеть больше на сайте: /vendor/magento/module-cms/Block/Adminhtml/Page/Grid.php.

0

Лучшей практикой является создание всех сеток через компоненты пользовательского интерфейса (xml).

Посмотрите на Magento_Catalog модуля и найти product_form.xml.