В настоящее время я пытаюсь углубиться в компоненты пользовательского интерфейса, но я застрял здесь.
Поскольку было бы немного разместить здесь весь код, я просто опубликую некоторые соответствующие ссылки на github.
Что работает, так это загрузка изображения и сохранение имени файла в базе данных.
Что не работает, так это снова загрузка файла в файл ввода на странице формы редактирования.
Ввод изображения определяется здесь: https://github.com/davidverholen/magento2-teaser/blob/develop/view/adminhtml/ui_component/teaser_item_form.xml#L83
В настоящее время класс пуст, я попробовал много вещей сегодня, но ничего не показалось слишком многообещающим, и я даже не уверен, что мне это нужно: https://github.com/davidverholen/magento2-teaser/blob/develop/Ui/Component/ Форма / элемент / TeaserItemImage.php
Источник данных для формы находится здесь: https://github.com/davidverholen/magento2-teaser/blob/develop/Model/TeaserItem/DataProvider.php
(также попытался загрузить image_url здесь и использовать это как индекс поля)
для этого есть также документ, и я, возможно, слишком глуп, чтобы понять, как это сделать: http://devdocs.magento.com/guides/v2.0/ui-components/ui-form.html
Есть идеи или кто-нибудь, кто уже сделал это?
Спасибо заранее!
Обновить:
Я нашел это в медиа-компоненте (который используется для изображений): vendor / magento / module-ui / view / base / web / js / form / element / media.js
return Abstract.extend({
defaults: {
links: {
value: ''
}
},
Я новичок во всем этом knockout.js, но похоже, что привязка значения удалена. Таким образом, должен быть другой способ установить значение?
Я также попытался установить привязку снова в конфигурации, но безуспешно. Попробовал это (добавил image_path_abs к источнику данных, который содержит абсолютный путь к файлу):
<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>