ฉันกำลังสร้างโมดูล CRUD สำหรับ Magento 2 โดยใช้ส่วนประกอบ UI สำหรับรายการผู้ดูแลระบบและรูปแบบและหนึ่งในหน่วยงานของฉันมีฟิลด์รูปภาพ
แต่ฉันไม่สามารถทำงานได้ตามที่ควร
นี่คือวิธีการทำงาน
เมื่ออยู่ในโหมดเพิ่มหรือในโหมดแก้ไขที่ไม่มีภาพที่อัปโหลดควรมีรูปแบบการป้อนไฟล์แบบง่าย
เมื่ออัปโหลดไฟล์แล้วควรแสดงตัวอย่างภาพและกล่องลบด้านล่าง
ฉันไม่ได้มองหาการออกแบบนี้อย่างแน่นอน มันอาจดูแตกต่าง แต่มีฟังก์ชั่นเหมือนกัน
ใน Magento 1 ฉันสามารถทำสิ่งนี้ได้เพียงสร้างตัวบล็อกบล็อคของตัวเอง
class {{Namespace}}_{{Module}}_Block_Adminhtml_{{Entity}}_Helper_Image extends Varien_Data_Form_Element_Image
{
protected function _getUrl()
{
$url = false;
if ($this->getValue()) {
$url = Mage::helper('{{namespace}}_{{module}}/{{entity}}_image')->getImageBaseUrl().$this->getValue();
}
return $url;
}
}
และเพิ่มสิ่งนี้ในบล็อกของฉัน
$fieldset->addType(
'image',
Mage::getConfig()->getBlockClassName('{{namespace}}_{{module}}/adminhtml_{{entity}}_helper_image')
);
แต่ฉันไม่มี form block ใน Magento 2
ฉันรู้ว่าฉันสามารถใช้ชื่อคลาสสำหรับฟิลด์ฟอร์มในไฟล์คอมโพเนนต์ ui
<field name="image" class="Class\Name\Here">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Resume</item>
<item name="formElement" xsi:type="string">image</item>
<item name="source" xsi:type="string">[entity]</item>
<item name="dataScope" xsi:type="string">image</item>
</item>
</argument>
</field>
เห็นได้ชัดว่าฉันต้องสร้างชั้นนี้ แต่สิ่งที่ฉันควรขยาย
สิ่งที่ฉันรู้คือฉันต้องใช้ส่วนต่อประสานMagento\Framework\View\Element\UiComponentInterface
แต่ฉันไม่พบสิ่งใดที่ฉันสามารถขยายได้
ดังนั้นคำถามที่แท้จริงของฉันคือ: ฉันสามารถขยายชั้นเรียนเพื่อให้บรรลุพฤติกรรมที่ต้องการได้หรือไม่? ถ้าไม่ใช่ฉันจะเริ่มสร้างตัวสร้างองค์ประกอบนี้ได้อย่างไร