Attualmente sto cercando di scavare più a fondo nei componenti dell'interfaccia utente ma sono un po 'bloccato qui.
Dal momento che sarebbe un po 'troppo per pubblicare tutto il codice qui, posterò solo alcuni collegamenti github rilevanti.
Ciò che funziona è caricare un'immagine e salvare il nome del file nel database.
Ciò che non funziona è caricare nuovamente il file nell'input del file nella pagina del modulo di modifica.
L'input dell'immagine è definito qui: https://github.com/davidverholen/magento2-teaser/blob/develop/view/adminhtml/ui_component/teaser_item_form.xml#L83
La classe è attualmente vuota, ho provato molte cose oggi, ma nulla sembrava troppo promettente e non sono nemmeno sicuro di averne bisogno: https://github.com/davidverholen/magento2-teaser/blob/develop/Ui/Component/ modulo / Element / TeaserItemImage.php
L'origine dati per il modulo è qui: https://github.com/davidverholen/magento2-teaser/blob/develop/Model/TeaserItem/DataProvider.php
(ho anche provato a caricare image_url qui e usarlo come indice di campo)
c'è anche un documento per questo e potrei essere troppo stupido per capire come farlo: http://devdocs.magento.com/guides/v2.0/ui-components/ui-form.html
Qualche idea o qualcuno che lo abbia già fatto?
Grazie in anticipo!
Aggiornare:
Ho trovato questo nel componente multimediale (che viene utilizzato per le immagini): vendor / magento / module-ui / view / base / web / js / form / element / media.js
return Abstract.extend({
defaults: {
links: {
value: ''
}
},
Sono nuovo di tutto il knockout.js, ma questo sembra che il valore sia stato rimosso. Quindi ci deve essere un altro modo per impostare il valore?
Ho anche provato a impostare nuovamente l'associazione nella configurazione, ma senza successo. Ho provato questo (aggiunti image_path_abs all'origine dati che contiene il percorso assoluto del file):
<field name="image_path" class="DavidVerholen\Teaser\Ui\Component\Form\Element\TeaserItemImage">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="links" xsi:type="array">
<item name="value" xsi:type="string">teaser_item_form.teaser_item_form_data_source.general.image_path_abs</item>
</item>
<item name="label" xsi:type="string">Image</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">image</item>
<item name="source" xsi:type="string">general</item>
</item>
</argument>
</field>