J'ai créé le formulaire ui_component .
Où je dois montrer les détails du client, Identique à la modification du client .
Mais, je peux montrer leurs données de customer_entity
table.
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;
}
J'ai rejoint la
customer_entity_text
table avec mon usine afin d'afficherstatus
(Attribut client).Maintenant, mon deuxième attribut est le
file
type. C'est danscustomer_entity_varchar
, tout d'abord, je pensais que pour ajouter une autre jointure, mais je pense que ce n'est pas la bonne façon.
Alors, y a-t-il une solution à cela? Je dois afficher les deux Customer Attribute
dans mon formulaire.
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). Le composant ci-dessus fonctionne bien pour le statut, mais pas pour l' image de profil de type Image.
<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>
Même si je supprime un champ du même nom, form element
cela ne semble pas fonctionner.
Jetez un œil au field
nom qui correspond value
au statut .
Si j'utilise la même chose pour le champ d'image, le composant d'image disparaît.
Remarque : je ne sais pas pourquoi Magento ne permet pas d'utiliser le nom comme value
.
Parce que je me suis joint à la collection, je reçois donc
value
la clé de tableau.
** Question: Comment puis-je obtenir des attributs client dans ce formulaire sans participer à la collection?
Aussi, si vous avez une autre solution que la plupart, la plupart sont les bienvenues. **
Réponses:
Vous devez créer votre table personnalisée avec la relation de la table customer_entity à l' aide du script de configuration comme suit:
Ensuite, vous devez charger le modèle client et joindre votre table personnalisée dans la fonction getData () de DataProvider.php comme suit:
Vous pouvez maintenant utiliser les noms de champ dans ui_component comme suit:
J'espère que cette solution résoudra votre problème.
la source