Concernant le source
nœud
La source
valeur du nœud correspond à une clé dans le tableau de données retourné par la \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getData
méthode de votre composant d'interface utilisateur.
Par exemple, considérons l' interface utilisateur customer_form .
Fichier/Magento/Customer/view/base/ui_component/customer_form.xml
De là, vous pouvez voir que pour la plupart des champs, Magento utilise la customer
valeur sous le source
nœud.
Mais attendez, pour les champs sous le jeu de address
champs, cette valeur a changé en address
.
Voyons maintenant brièvement le DataProvider correspondant pour le composant UI customer_form .
La classe est \Magento\Customer\Model\Customer\DataProvider
.
En gros, la méthode getData
de cette classe est responsable du retour des données qui sont remplies dans les champs correspondants déclarés par le composant customer_form .
Comme vous pouvez le deviner maintenant, la valeur client du source
nœud nous dit d'utiliser la valeur stockée sous le client clé dans la getData
méthode, tandis que l' adresse source
pointe vers les données stockées sous l' adresse clé dans les données retournées.
Regarder de plus près:
<field name="firstname" formElement="input">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
item name="source" xsi:type="string">customer</item>
</item>
</argument>
</field>
Le champ ci - dessus prend sa valeur prenom à partir des données stockées sous la clé client retourné par le client DataProvider .
Dans le cas ci-dessous, la source de la valeur du prénom est les données stockées sous l' adresse clé :
<field name="firstname" formElement="input">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">address</item>
</item>
</argument>
</field>
Concernant le dataScope
nœud
Le dataScope
nœud vous permet de modifier une valeur pour l' attribut name de votre entrée (champ), par exemple, l'
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item
<item name="dataScope" xsi:type="string">field_name</item>
</item>
</argument>
</field>
entrée de résultat sera rendue comme suit:<input name="field_name"...>
Vous pouvez également écrire les valeurs dans le dataScope
nœud séparées par des points: customer.address.firstname
dans ce cas, l'entrée de résultat est rendue comme suit: <input name="customer[address][firstname]"...>
Voici où la magie opère .
Le dataScope
nœud modifie également le chemin de la valeur récupérée pour un champ. Ceci est réalisé au moyen de la technique de liaison .