I have a module that is creating dynamically generated admin fields with Image upload it's not saving and showing in the admin panel.
Is their any way it can be implemented ?
I have added the image field in dynamic rows like below
$this->addColumn(
'image',
[
'label' => __('Image'),
'renderer' => $this->getImageRenderer()
]);
private function getImageRenderer()
{
if (!$this->imageRenderer) {
$this->imageRenderer = $this->getLayout()->createBlock(
\Vendor\Module\Block\Adminhtml\Blocks\Edit\Tab\ImageRenderer::class,
'',
['data' => ['is_render_to_js_template' => true]]
);
}
return $this->imageRenderer;
}
ImageRenderer class
<?php
namespace Vendor\Module\Block\Adminhtml\Blocks\Edit\Tab;
class ImageRenderer extends \Magento\Framework\View\Element\AbstractBlock
{
/**
* {@inheritdoc}
*/
protected function _toHtml()
{
$html = '<input type="file" name="' . $this->getInputName() . '" id="' . $this->getInputId() . '" ';
$html .= '<image name="' . $this->getInputName() . '" id="' . $this->getInputId() . '" />';
return $html;
}
}