UI 구성 요소를 사용하여 관리자에서 양식을 만들었으므로 view/adminhtml/ui_component/[module]_[entity]_form.xml
다음과 같은 내용이 있습니다.
<field name="configuration">
<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">Configuration</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">form</item>
<item name="sortOrder" xsi:type="number">30</item>
<item name="dataScope" xsi:type="string">configuration</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
이제이 값을 원하지 않지만이 값 textarea
에 대한 백엔드에서 고유 한 HTML 마법을 만들고 싶습니다. 이 'HTML Magic'은 결국 물 아래에서 양식을 게시 할 때 숨겨진 데이터를 전송하는 JS / KnockOut이 많으므로 양식의 일부 여야합니다. 나는 다음을 추가하여 렌더링을 추가하려고 시도했다.
<item name="renderer" xsi:type="object">Vendor\Module\Block\Adminhtml\Renderer\Configurator</item>
그러나 이것은 여전히 텍스트 영역을 렌더링합니다. 그런 다음을 formElement
사용자 정의 클래스로 바꾸려고했습니다 .
<item name="formElement" xsi:type="object">Vendor\Module\Component\Form\Element\Configurator</item>
그러나 오류가 발생합니다.
The requested component ("Vendor\Module\Component\Form\Element\Configurator") is not found. Before using, you must add the implementation.
두 가지 질문이 있습니다.
- 이것이 관리 양식에 사용자 정의 양식 요소를 추가하는 올바른 방법입니까? (그렇다면 어떻게?)
- 아무것도에 관계없이 구현을 어떻게 추가 할 수 있습니까? UI 모듈을 통해 그들이 어떻게했는지 보려고하지만 아무것도 찾을 수 없습니다.
\Magento\Framework\View\Element\UiComponent\Config\Provider\Component\Definition::setComponentData()
이벤트를 사용하여 사용자 지정 구성 요소를 추가하려고 이미 시도했지만 훨씬 더 편리합니다! 나는 그 Magento 2 예제를 더 자세히 살펴 봐야합니다.