Concernant le sourcenœud
La sourcevaleur du nœud correspond à une clé dans le tableau de données retourné par la \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getDatamé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 customervaleur sous le sourcenœud.
Mais attendez, pour les champs sous le jeu de addresschamps, 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 getDatade 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 sourcenœud nous dit d'utiliser la valeur stockée sous le client clé dans la getDatamé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 dataScopenœud
Le dataScopenœ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 dataScopenœud séparées par des points: customer.address.firstnamedans ce cas, l'entrée de résultat est rendue comme suit: <input name="customer[address][firstname]"...>
Voici où la magie opère .
Le dataScopenœ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 .