系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》
本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。
介绍
很多时候,我们需要在客户网格中添加自定义/新列。因此,在此博客中,我们将帮助您实现您的要求。我们将学习如何在Magento 2的客户网格中添加新列。我相信你们都非常了解如何创建一个简单的模块,因此我们将首先按照以下步骤在Magento 2的客户网格中添加一个新的/自定义表。
客户网格的重要性
在客户网格的重要性中,我们可以说,在在线购物期间,客户在您的Magento 2网上商店注册,必须填写某些字段,例如电子邮件,手机号码,名字,姓氏。如果客户希望提供一些额外的信息。为此,我们需要在注册表中添加一些额外的字段。
在本博客中,我们将包括如何在Magento 2的客户网格中添加新的/自定义表,我将向您解释如何执行以及它的实际工作原理。
让我们从如何配置开始:
注意:客户网格从表中获取用于列出和筛选的数据customer_grid_flat。
步骤1:为此,请在app\code\Vendor\Extension\view\adminhtml\ui_component中创建customer_listing.xml文件
<?xml version="1.0" encoding="UTF-8"?> <listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <columns name="customer_columns" class="Magento\Customer\Ui\Component\Listing\Columns"> <column name="custom_column" sortOrder="90" class="Vendor\Extension\Ui\Component\Listing\Column\CustomColumn"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="boolean">true</item> <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Team</item> </item> </argument> </column> </columns> </listing>
在这里,我们使用渲染来自定义列值,因此为了实现这一点,我们需要遵循以下给定的步骤,
步骤2:接下来,在里面创建自定义列.php文件
app\code\Vendor\Extension\Ui\Component\Listing\Column\ 文件夹,并将给定的以下代码添加到其中:
<?php namespace Vendor\Extension\Ui\Component\Listing\Column; use Magento\Framework\View\Element\UiComponent\ContextInterface; use Magento\Framework\View\Element\UiComponentFactory; use Magento\Ui\Component\Listing\Columns\Column; use Magento\Framework\Api\SearchCriteriaBuilder; class CustomColumn extends Column { protected $customerFactory; protected $_searchCriteria; public function __construct( ContextInterface $context, UiComponentFactory $uiComponentFactory, SearchCriteriaBuilder $criteria, array $components = [], array $data = []) { $this->_searchCriteria = $criteria; parent::__construct($context, $uiComponentFactory, $components, $data); } public function prepareDataSource(array $dataSource) { if (isset($dataSource['data']['items'])) { foreach ($dataSource['data']['items'] as & $item) { $item[$this->getData('name')] = “admin - “ . $this->getData('name'); } } return $dataSource; } }
因此,上面给出的简单步骤肯定会帮助您在Magento 2中的客户网格中添加新的/自定义列。
结论
现在,没有必要遵循复杂的方法来浪费你的时间。按照上面给出的简单步骤,让您的Magento 2商店变得更好。