首页 > 解决方案 > Symfony4 Twig Extension 返回图片路径

问题描述

我想在 Symfony4 中创建一个 TwigExtension 函数,以便根据视图中的字符串属性显示图像。

我已经安装了资产:"symfony/asset": "^4.4",

在较低版本的 Symfony 中,我可以使用AssetsHelper::getUrl()-> 返回资产的公共 url/路径。

我不确定如何在 Symfony4 中使用“Twig”实现这一点。

标签: symfonysymfony4

解决方案


解决方案有点不同。

所以这就是我所做的:

在 webpackencore 配置中,我必须添加它才能将文件复制到公用文件夹:

.copyFiles({
        'from': './assets/img',
        'to': 'images/[path][name].[ext]'
    })

然后在我的扩展类中,函数如下所示:

/**
 * @param $type
 *
 * @return mixed
 */
public function showPaymentTypeIcon($type)
{
    $sImagePath = '/build/images/payment-icons';

    switch($type) {
        case 'card':
        default:
            $assetImagePath = $sImagePath.'/credit.svg';
            break;

        case 'sofort':
            $assetImagePath = $sImagePath.'/sofort.svg';
            break;

    }

    $oPackage = new Package(new EmptyVersionStrategy());

    return $oPackage->getUrl($assetImagePath);
}

AssetsHelper因此,我们必须按照此处所述使用,而不是现在Packagehttps ://symfony.com/doc/current/components/asset.html#asset-packages


推荐阅读