Ich versuche gerade, tiefer in die UI-Komponenten einzudringen, aber ich stecke hier irgendwie fest.
Da es ein bisschen viel wäre, den gesamten Code hier zu posten, werde ich nur einige relevante Github-Links posten.
Was funktioniert, ist ein Bild hochzuladen und den Dateinamen in der Datenbank zu speichern.
Was nicht funktioniert, ist das erneute Laden der Datei in die Dateieingabe auf der Seite zum Bearbeiten des Formulars.
Die Bildeingabe wird hier definiert: https://github.com/davidverholen/magento2-teaser/blob/develop/view/adminhtml/ui_component/teaser_item_form.xml#L83
Die Klasse ist derzeit leer, ich habe heute viele Dinge ausprobiert, aber nichts schien zu vielversprechend und ich bin mir nicht einmal sicher, ob ich es brauche: https://github.com/davidverholen/magento2-teaser/blob/develop/Ui/Component/ Form / Element / TeaserItemImage.php
Die DataSource für das Formular finden Sie hier: https://github.com/davidverholen/magento2-teaser/blob/develop/Model/TeaserItem/DataProvider.php
(habe auch versucht, die image_url hier zu laden und diese als Feldindex zu verwenden)
Es gibt auch ein Dokument dafür und ich bin vielleicht zu dumm, um zu verstehen, wie das geht: http://devdocs.magento.com/guides/v2.0/ui-components/ui-form.html
Irgendwelche Ideen oder jemand, der dies bereits getan hat?
Danke im Voraus!
Aktualisieren:
Ich habe dies in der Medienkomponente gefunden (die für Bilder verwendet wird): vendor / magento / module-ui / view / base / web / js / form / element / media.js
return Abstract.extend({
defaults: {
links: {
value: ''
}
},
Ich bin neu in der ganzen Sache mit knockout.js, aber dies scheint, als ob die Wertebindung entfernt wurde. Es muss also eine andere Möglichkeit geben, den Wert festzulegen?
Ich habe auch versucht, die Bindung in der Konfiguration erneut festzulegen, aber ohne Erfolg. Versuchte dies (fügte die image_path_abs zur Datenquelle hinzu, die den absoluten Dateipfad enthält):
<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>