Bagaimana saya bisa menambahkan teks kecil di bawah bidang di Magento 2 menggunakan komponen ui.
Menggunakan Magento\Framework\Data\Form
saya bisa melakukan ini:
/** @var \Magento\Framework\Data\Form $form */
$form = $this->formFactory->create();
$fieldset = $form->addFieldset(
'base_fieldset',
[
'legend' => __('Some legend here'),
'class' => 'fieldset-wide'
]
);
$fieldset->addField(
'name',
'text',
[
'name' => 'name',
'label' => __('Name'),
'title' => __('Name'),
'note' => __('Some note here')
]
);
Kode di atas akan menghasilkan ini (perhatikan teks di bawah bidang).
Bagaimana saya bisa mencapai hal yang sama menggunakan form ui-components?
Saya memiliki bentuk yang didefinisikan seperti ini:
<field name="name">
<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">Name</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">[entity]</item>
<item name="sortOrder" xsi:type="number">10</item>
<item name="dataScope" xsi:type="string">name</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
Saya mencoba menambahkan <item name="note" xsi:type="string" translate="true">Some note here</item>
tetapi, coba tebak?
magento-2.0
forms
uicomponent
Marius
sumber
sumber
translate="true"
hanya untuk membuat naskah kolektor frase yang dapat diterjemahkan mengambil ini juga.<item name="notice" xsi:type="string" translate="true"><![CDATA[Some note <a href="https://google.com">here</a>]]></item>
Saya memiliki waktu yang sangat menjengkelkan mencari tahu bagaimana mendapatkan html untuk di-render dalam objek pemberitahuan. Ada dua solusi yang saya temukan. Saya tahu ini mungkin komentar, tapi saya pikir orang lain juga akan tertarik dengan fungsi ini.
elemen asli dapat ditemukan di
/vendor/magento/module-ui/view/base/web/templates/form/field.html
Salin itu ke modul Anda dengan jalur
view/base/web/template/form/field-html-notice.html
atau sesuatu yang serupa ( harap perhatikantemplates
direktori diubah menjaditemplate
yang disengaja dan diperlukan untuk file templat khusus )Sekarang di file field-html-notice.html baru Anda, Anda dapat memodifikasi file html untuk memuat
$data.notice
html menggunakan dan melewatkan rentang sama sekali. (tentu saja jika Anda ingin menerjemahkan html Anda, Anda harus menyesuaikan solusi ini untuk mendapatkan solusi)Solusinya adalah dengan mengambil templat ini dan memodifikasi
untuk terlihat lebih seperti ini:
Setelah saya meluangkan waktu untuk melakukan itu, saya menyadari tim Magento dengan mudah memberi kami kemampuan untuk menambahkan
additionalInfo
yang diterjemahkan sebagai html.Opsi yang lebih rumit adalah membuat pemberitahuan div render di
additionalInfo
bagian tersebut. Sesuatu di sepanjang garisJadi ya, sederhana kan? Baik. Aku akan tidur sekarang.
(harap dicatat bahwa validator xml akan rusak jika Anda menggunakan karakter aktual
<
atau>
karakter di info tambahan Anda, karenanya<
dan>
Catatan: ternyata Anda bisa membungkus html Anda di
<![CDATA[<p>cool paragraph man</p>]]
Thanks @Mariussumber
<![CDATA[<p>cool paragraph man</p>]]
Tidak bekerja di bawahmessage
tetapi berfungsi denganadditionalInfo
mag.2.2.2Magento 2 versi 2.2.8 dan 2.3.1 saat ini mendukung html AdditionalInfo secara default di bidang Formulir UI.
Tidak perlu memodifikasi template field.html.
sumber