symfony - Symfony4 Twig Extension 返回图片路径
问题描述
我想在 Symfony4 中创建一个 TwigExtension 函数,以便根据视图中的字符串属性显示图像。
我已经安装了资产:"symfony/asset": "^4.4",
在较低版本的 Symfony 中,我可以使用AssetsHelper::getUrl()
-> 返回资产的公共 url/路径。
我不确定如何在 Symfony4 中使用“Twig”实现这一点。
解决方案
解决方案有点不同。
所以这就是我所做的:
在 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
因此,我们必须按照此处所述使用,而不是现在Package
:https ://symfony.com/doc/current/components/asset.html#asset-packages
推荐阅读
- python - 将 x、y、值时间序列插入另一组点的最简单方法是什么?
- android - 粘贴到多个edittext
- tcp - TCP 端口和 OSI 模型
- git - 合并 develop 到 master 使得 commit 在顶部移动
- mysql - 使用 case 语句从 SELECT 更新记录。(mysql)
- java - 将 Java 客户端 (JMS) 连接到 IBM MQ 时出现问题
- python - 如何在列表中查找重复值并将它们合并
- java - Spring Batch Job 完成时记录
- php - 内置服务器 PHP 的 Google Cloud Shell 问题 - 无法连接到端口 8080 上的 Cloud Shell
- java - Akka IO 随机重置 TCP 连接