Trường nhập liệu tệp hình ảnh Magento2 ui_component - form -


8

Tôi hiện đang cố gắng tìm hiểu sâu hơn về các Thành phần UI nhưng tôi hơi bị kẹt ở đây.

Vì sẽ hơi nhiều để đăng tất cả mã ở đây, tôi sẽ chỉ đăng một số liên kết github có liên quan.

Những gì hoạt động là tải lên một hình ảnh và lưu tên tệp vào cơ sở dữ liệu.

Những gì không hoạt động là tải lại tệp trong đầu vào tệp trên trang mẫu chỉnh sửa một lần nữa.

Đầu vào hình ảnh được xác định tại đây: https://github.com/davidverholen/magento2-teaser/blob/develop/view/adminhtml/ui_component/teaser_item_form.xml#L83

Lớp học hiện đang trống, tôi đã thử nhiều thứ ngày hôm nay nhưng dường như không có gì quá hứa hẹn và tôi thậm chí không chắc là mình có cần không: https://github.com/davidverholen/magento2-teaser/blob/develop/Ui/Component/ Biểu mẫu / Phần tử / TeaserItemImage.php

Nguồn dữ liệu cho biểu mẫu có tại đây: https://github.com/davidverholen/magento2-teaser/blob/develop/Model/TeaserItem/DataProvider.php

(cũng đã thử tải image_url tại đây và sử dụng nó làm chỉ mục trường)

cũng có một tài liệu cho việc này và tôi có thể quá ngu ngốc để hiểu cách làm điều này: http://devdocs.magento.com/guides/v2.0/ui-components/ui-form.html

Bất kỳ ý tưởng hoặc bất cứ ai đã làm điều này?

Thx trước!

Cập nhật:

Tôi đã tìm thấy điều này trong thành phần phương tiện (được sử dụng cho hình ảnh): nhà cung cấp / magento / module-ui / view / base / web / js / form / Element / media.js

return Abstract.extend({
        defaults: {
            links: {
                value: ''
            }
        },

Tôi chưa quen với toàn bộ điều knockout.js, nhưng có vẻ như ràng buộc giá trị đã bị xóa. Vậy phải có cách nào khác để đặt giá trị?

Tôi cũng đã cố gắng thiết lập ràng buộc một lần nữa trong cấu hình nhưng không thành công. Đã thử điều này (đã thêm image_path_abs vào nguồn dữ liệu chứa đường dẫn tệp tuyệt đối):

<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>

Câu trả lời:


5

Trong Magento 2.1, điều này thực sự đã trở nên dễ dàng hơn rất nhiều.

Một ví dụ điển hình cho việc triển khai là mẫu danh mục: https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/view/adminhtml/ui_component/carget_form.xml#L148

Sau đó, bạn cũng cần một Trình điều khiển để tải lên hình ảnh: https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Contoder/Adminhtml/Carget/Image/Upload.php

Và cuối cùng nhưng không kém phần logic trong bộ điều khiển lưu, hy vọng sẽ sớm được cấu trúc lại:

https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Controll/Adminhtml/Carget/Save.php#L259 https://github.com/magento/magento2/blob/develop /app/code/Magento/Catalog/Contoder/Adminhtml/Carget/Save.php#L82


1
chào David, tôi thuộc loại tương tự như bạn đã mô tả trong câu hỏi. Tôi có chức năng tải lên làm việc và tên hình ảnh được lưu trong cơ sở dữ liệu. Để rõ ràng, điều này được thực hiện trong mẫu "Thêm mục mới". Nhưng khi tôi xem bất kỳ mục nào trong số đó, phần tử Hình ảnh không hiển thị. Tôi cũng đã đề cập đến các mô-đun danh mục khi tôi phát triển của tôi. Tôi chưa đào sâu được. Nhưng để có được hình ảnh hiển thị, tôi có cần thay đổi biểu mẫu dataSource / Collection để bao gồm hình ảnh basePath không?
Nero

Của tôi hoạt động theo mặc định, mã trường có giống với mã thuộc tính không?
LM_Fielding

1
@LM_Fielding, xin lỗi tôi không hiểu ý bạn. Tên trường là hình ảnh giống như tên cột trong cơ sở dữ liệu. Nếu tôi coi hình ảnh như một trường văn bản đầu vào thông thường, nó có thể hiển thị như mong đợi. Trường hình ảnh chỉ đơn giản là một cột từ bảng, không phải EAV.
Nero

Bạn có câu hỏi hoặc mã ui xml của bạn ở bất cứ đâu không? Hiển thị Setup / InstallData và xml cho mẫu?
LM_Fielding

@LM_Fielding, đây là câu hỏi của tôi magento.stackexchange.com/questions/140318/ . Xin hãy xem đó. cảm ơn
Nero
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.