I need to get asset image url in block file
Here is my code:
I have image on this page: logo.svg
\Abc\Mkt\view\adminhtml\web\images
Abc\Mkt\Block\image.php
namespace Abc\Mkt\Block;
use Magento\Backend\Block\Template\Context;
use Magento\Config\Block\System\Config\Form\Field;
use Magento\Framework\Data\Form\Element\AbstractElement;
class Image extends Field
{
/**
* @var string
*/
/**
* @param Context $context
* @param array $data
*/
protected $_assetRepo;
public function __construct(
Context $context,
\Magento\Framework\View\Asset\Repository $assetRepo,
array $data = []
) {
$this->_assetRepo = $assetRepo;
parent::__construct($context, $data);
}
/**
* Remove scope label
*
* @param AbstractElement $element
* @return string
*/
public function render(AbstractElement $element)
{
$image = $this->_assetRepo->getUrl("Abc_Mkt::images/logo.svg");
$html='<div class="image"><img src='.$image.' style="width:35%;float:right;padding-top: 10px;"></div>';
return $html;
}
}
asked Nov 15, 2019 at 6:45
Shomita
1,1251 gold badge12 silver badges40 bronze badges
-
You want to display image in frontend or backend ?Kishan Savaliya– Kishan Savaliya2019年11月15日 07:00:05 +00:00Commented Nov 15, 2019 at 7:00
-
I want to display image in backendShomita– Shomita2019年11月15日 07:01:15 +00:00Commented Nov 15, 2019 at 7:01
-
@kishan Not getting the image. even distort the pageShomita– Shomita2019年11月15日 07:03:04 +00:00Commented Nov 15, 2019 at 7:03
-
Your file is calling did you checked that ?Kishan Savaliya– Kishan Savaliya2019年11月15日 07:03:40 +00:00Commented Nov 15, 2019 at 7:03
-
1Print your url and exit and check url proper display or not. It should be working.Ankita Patel– Ankita Patel2019年11月15日 07:08:11 +00:00Commented Nov 15, 2019 at 7:08
1 Answer 1
using this class injection, you can get your image link
Magento\Framework\View\Asset\Repository $repository,
in your function.
$this->_repo->createAsset('Abc_Mkt::images/logo.svg')->getUrl();
answered Nov 15, 2019 at 7:38
sudo55
1,0142 gold badges17 silver badges37 bronze badges
default