我创建了ui_component表单。
在需要显示客户详细信息的地方,与客户编辑相同。
但是,我可以从customer_entity
表中显示其数据。
DataProvider.php
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
// {Vendor}\{Module}\Model\GridFactory
// Returns Customer Resource Model
$items = $this->gridFactory->create()->getCollection();
$items->getSelect()->join('customer_entity_text as second', 'main_table.entity_id = second.entity_id');
//print_r($items->getData()); exit;
foreach($items as $contact){
$this->loadedData[$contact->getEntityId()]['contact'] = $contact->getData();
}
return $this->loadedData;
}
我已将
customer_entity_text
表与Factory一起加入以便显示status
(客户属性)。现在,我的第二个属性是
file
type。在中customer_entity_varchar
,首先我认为要添加另一个联接,但我认为这不是好方法。
那么,对此有什么解决方案吗?我需要Customer Attribute
在表单中同时显示两者。
ui_component
<field name="value">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string">Status</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">contact</item>
</item>
</argument>
</field>
1)。上面的组件对状态有效,但对于图像类型的个人档案图像则无效。
<field name="value">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string">Profile Image</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="formElement" xsi:type="string">fileUploader</item>
<item name="uploaderConfig" xsi:type="array">
<item name="url" xsi:type="url" path="path_controller"/>
</item>
</item>
</argument>
</field>
即使我删除了一个具有相同名称的字段,form element
它似乎也不起作用。
看看field
这是名称value
的状态。
如果我对图像字段使用相同的内容,则图像组件消失了。
注意:我不知道为什么Magento不允许使用名字作为value
。
因为我已经加入了集合,所以我要
value
作为数组键。
**问题:如何在不加入集合的情况下以这种形式获取客户属性?
另外,如果您有除大多数解决方案之外的其他解决方案,也非常欢迎。**
您可以检查正在使用的新属性是否在客户实体的“默认”属性集中吗?
—
晦涩的
您能再读一遍自己的问题:在阅读时,这个问题对我来说没有意义。因此,这对我们解决您的问题没有帮助吗?
—
Herve Tribouilloy
忘记其他事情了,如果您不能回答我如何在自定义ui表单中显示客户属性?一种是图像,另一种是文本。
—
TBS法师
您是在前端还是后端中构建表单的问题?
—
Herve Tribouilloy