当前位置: 技术文章>> Magento 2:如何在客户列表中添加新列(字段)

文章标题:Magento 2:如何在客户列表中添加新列(字段)
  • 文章分类: Magento
  • 20278 阅读
系统学习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商店变得更好。


推荐文章