Actualmente estoy tratando de profundizar en los componentes de la interfaz de usuario, pero estoy un poco atrapado aquí.
Dado que sería un poco demasiado difícil publicar todo el código aquí, solo publicaré algunos enlaces de github relevantes.
Lo que funciona es cargar una imagen y guardar el nombre del archivo en la base de datos.
Lo que no funciona es cargar el archivo en la entrada del archivo en la página de edición de formulario nuevamente.
La entrada de la imagen se define aquí: https://github.com/davidverholen/magento2-teaser/blob/develop/view/adminhtml/ui_component/teaser_item_form.xml#L83
La clase está actualmente vacía, probé muchas cosas hoy pero nada parecía demasiado prometedor y ni siquiera estoy seguro de si lo necesito: https://github.com/davidverholen/magento2-teaser/blob/develop/Ui/Component/ Form / Element / TeaserItemImage.php
El DataSource para el formulario está aquí: https://github.com/davidverholen/magento2-teaser/blob/develop/Model/TeaserItem/DataProvider.php
(también intenté cargar el image_url aquí y usarlo como índice de campo)
También hay un documento para esto y puedo ser demasiado estúpido para entender cómo hacerlo: http://devdocs.magento.com/guides/v2.0/ui-components/ui-form.html
¿Alguna idea o alguien que ya haya hecho esto?
Gracias de antemano!
Actualizar:
Encontré esto en el componente de medios (que se usa para imágenes): vendor / magento / module-ui / view / base / web / js / form / element / media.js
return Abstract.extend({
defaults: {
links: {
value: ''
}
},
Soy nuevo en todo el tema de knockout.js, pero parece que se eliminó el enlace de valor. Entonces, ¿debe haber otra forma de establecer el valor?
También intenté establecer el enlace nuevamente en la configuración pero sin éxito. Intenté esto (agregué el image_path_abs al origen de datos que contiene la ruta absoluta del archivo):
<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>
fuente