Grid Magento 2网格结构
我已经开始研究Magento 2网格。我开发了一个简单的模块,但我不了解网格的结构Grid Magento 2网格结构,grid,magento2,Grid,Magento2,我已经开始研究Magento 2网格。我开发了一个简单的模块,但我不了解网格的结构 在Magento 1.9.X中,添加网格的方法很明确,但在Magento 2中,结构有所不同。如何在Magento 2中添加网格?在Magento 2中,您可以通过XML创建网格(请参阅) 但是,您可以通过PHP创建网格,如Magento 1:将网格类扩展为“Magento\Backend\Block\Widget\grid\Extended” 在Magento 2中,您可以通过XML创建网格(请参阅) 但是,您
在Magento 1.9.X中,添加网格的方法很明确,但在Magento 2中,结构有所不同。如何在Magento 2中添加网格?在Magento 2中,您可以通过XML创建网格(请参阅) 但是,您可以通过PHP创建网格,如Magento 1:将网格类扩展为“Magento\Backend\Block\Widget\grid\Extended”
在Magento 2中,您可以通过XML创建网格(请参阅) 但是,您可以通过PHP创建网格,如Magento 1:将网格类扩展为“Magento\Backend\Block\Widget\grid\Extended”
最佳实践是通过UI组件(xml)创建所有网格
查看Magento_目录模块并找到product_form.xml。最佳做法是通过UI组件(xml)创建所有网格
查看Magento_目录模块并找到product_form.xml。现在,在adminhtml中添加网格的首选方法是使用ui组件
现在使用它是最好的方法的原因是,当您将它添加为ui组件时,可以使用很多magento 2后端功能
但是,有多种方法可以添加此功能。
为了不重复stackoverflow中的答案和大量代码,我找到了一个mageplaza解释,它解释了网格的创建
您还可以参考magento 2文档,了解可以在ui组件中使用的其他组件:
您可以在网格中创建多个现有组件,也可以创建自己的组件。Aldo complex它们在设置时提供了很大的灵活性。当您创建一对网格时,您将了解它们是如何工作的,并且能够轻松地使用它们。现在,在adminhtml中添加网格的首选方法是使用ui组件
现在使用它是最好的方法的原因是,当您将它添加为ui组件时,可以使用很多magento 2后端功能
但是,有多种方法可以添加此功能。
为了不重复stackoverflow中的答案和大量代码,我找到了一个mageplaza解释,它解释了网格的创建
您还可以参考magento 2文档,了解可以在ui组件中使用的其他组件:
您可以在网格中创建多个现有组件,也可以创建自己的组件。Aldo complex它们在设置时提供了很大的灵活性。当您创建一对时,您将了解它们是如何工作的,并且能够轻松地使用它们。1:create controller Index.php
<?php
namespace Ced\Abhinay\Controller\Adminhtml\Account;
class Index extends \Magento\Backend\App\Action {
/**
* @var bool|\Magento\Framework\View\Result\PageFactory
*/
protected $resultPageFactory = false;
/**
* Index constructor.
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->prepend((__('Ced Abhinay')));
return $resultPage;
}
}
3.然后创建文件ListGrid.php
<?php
namespace Ced\Abhinay\Block\Adminhtml\Account;
class ListGrid extends \Magento\Backend\Block\Widget\Grid\Container {
/**
* Class ListGrid extends parent constructor \Magento\Backend\Block \Widget\Grid
*/
protected function _construct()
{
$this->_controller = 'account_index';
$this->_blockGroup = 'Ced_Abhinay';
$this->_addButtonLabel = __('Ced Test');
parent::_construct();
}
}
1:Create controller Index.php
<?php
namespace Ced\Abhinay\Controller\Adminhtml\Account;
class Index extends \Magento\Backend\App\Action {
/**
* @var bool|\Magento\Framework\View\Result\PageFactory
*/
protected $resultPageFactory = false;
/**
* Index constructor.
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->prepend((__('Ced Abhinay')));
return $resultPage;
}
}
3.然后创建文件ListGrid.php
<?php
namespace Ced\Abhinay\Block\Adminhtml\Account;
class ListGrid extends \Magento\Backend\Block\Widget\Grid\Container {
/**
* Class ListGrid extends parent constructor \Magento\Backend\Block \Widget\Grid
*/
protected function _construct()
{
$this->_controller = 'account_index';
$this->_blockGroup = 'Ced_Abhinay';
$this->_addButtonLabel = __('Ced Test');
parent::_construct();
}
}
<?php
namespace Ced\Abhinay\Block\Adminhtml\Account\Grid;
class Grid extends \Magento\Backend\Block\Widget\Grid\Extended {
/** @var \Ced\Abhinay\Model\ListModel */
protected $listModelData;
/**
* Grid constructor.
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Backend\Helper\Data $backendHelper
* @param \Ced\Abhinay\Model\ListModel $listModelData
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Helper\Data $backendHelper,
\Ced\Abhinay\Model\ListModel $listModelData,
array $data = []
) {
parent::__construct($context, $backendHelper, $data);
$this->listModelData = $listModelData;
}
protected function _construct()
{
parent::_construct();
$this->setId('list_grid');
$this->setDefaultSort('list_id');
$this->setDefaultDir('DESC');
$this->isAjax('true');
}
protected function _prepareCollection()
{
$collection = $this->listModelData->getCollection();
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{
$this->addColumn(
'post_id',
[
'header' => __('ID'),
'sortable' => true,
'index' => 'post_id',
'type' => 'number',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn(
'title',
[
'header' => __('Name'),
'index' => 'name',
'header_css_class' => 'col-name',
'column_css_class' => 'col-name'
]
);
$this->addColumn(
'position',
[
'header' => __('Position'),
'name' => 'position',
'width' => 60,
'type' => 'number',
'validate_class' => 'validate-number',
'index' => 'position',
'editable' => true,
]
);
return parent::_prepareColumns();
}
}