Comment puis-je envoyer un identifiant de mon formulaire à une grille de liste d'insertion?
Ce que je veux faire, c'est dans ma forme, je charge une grille avec insert Listing.
Dans cette grille, je veux tous les résultats avec l'id du formulaire.
<insertListing name="insertlisting_colors_one">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="autoRender" xsi:type="boolean">true</item>
<item name="imports" xsi:type="array">
<item name="spd_id" xsi:type="string">${ $.provider }:data.spd_id</item>
</item>
<item name="ns" xsi:type="string">colors_one_grid</item>
</item>
</argument>
</insertListing>
Ci-dessous le code dans la grille
<item name="filter_url_params" xsi:type="array">
<item name="color_amount" xsi:type="string">1</item>
<item name="spd_id" xsi:type="string">${ $.parentName }.spd_id</item>
</item>
magento2
uicomponent
Johan
la source
la source
Réponses:
Pour ajouter une liste d'insertions par paramètre du composant ui parent, nous pouvons utiliser le code ci-dessous.
Ici, la
externalProvider
balise est pour ajouter le fournisseur source de la liste que nous insérons.Ici, la
imports
balise est utilisée pour importer les paramètres de la source de données du formulaire actuelIci, la
exports
balise est utilisée pour exporter les paramètres de données de formulaire actuels vers la liste qui va être insérée.Ajoutez la jointure avec la colonne appropriée à la collection actuelle pour l'utiliser dans le filtre du fournisseur de données de la liste insérée.
Dans le fournisseur de données, ajoutez un filtre pour ce paramètre:
la source
Vous devez définir une valeur pour le paramètre render_url sur la insertListing , puis mettre à jour cette URL à l'intérieur de votre fournisseur de données. Il est nécessaire d'effectuer cette action deux fois car vous devrez avoir un fournisseur de données pour votre composant de formulaire et un autre spécifique pour le composant de liste.
1 - Déclaration correcte du composant insertListing: (Vendor / Module / view / adminhtml / ui_component / vendor_module_form.xml)
2 - Ajoutez les modifications suivantes au fournisseur de données de la page Formulaire. Cela changera le render_url en ajoutant le paramètre "id" à la fin de l'URL:
(Vendeur / Module / Ui / DataProvider / [chemin d'accès à votre fournisseur de données.php] )
Remarque: ne copiez / collez pas le bloc entier ci-dessous sur votre fournisseur de données. Au lieu de cela, choisissez les éléments manquants dans votre code
3 - Mettez à jour votre composant d'annonce. Il doit avoir un paramètre updateUrl à l'intérieur du composant DataSource:
(Vendeur / Module / view / adminhtml / ui_component / vendor_module_listing.xml)
4 - Mettez à jour votre fournisseur de données de référencement pour modifier la updateUrl sur le composant de référencement ci-dessus
(Fournisseur / Module / Ui / DataProvider / [chemin-vers-votre-LISTING-data-provider.php] )
Remarque: ne copiez / collez pas le bloc entier ci-dessous sur votre fournisseur de données. Au lieu de cela, choisissez les éléments manquants dans votre code
Faites-moi savoir si vous avez encore des problèmes. Je ne pourrai peut-être pas répondre aux commentaires, mais je peux mettre à jour ma réponse.
la source