Closed wsydney76 closed 1 year ago
Using the svg function with an svg icon returns an empty string.
svg
2023-02-24 10:29:00 [web.ERROR] [craft\helpers\Html::svg] Could not get the contents of CloudArrowUp.svg: Call to a member function getFileStream() on null {"memory":1609400} 2023-02-24 10:29:00 [web.ERROR] [Error] Error: Call to a member function getFileStream() on null in /var/www/html/vendor/craftcms/cms/src/elements/Asset.php:2240 Stack trace: #0 /var/www/html/vendor/craftcms/cms/src/elements/Asset.php(2253): craft\elements\Asset->getStream() #1 /var/www/html/vendor/craftcms/cms/src/helpers/Html.php(1021): craft\elements\Asset->getContents() #2 /var/www/html/vendor/craftcms/cms/src/web/twig/Extension.php(1495): craft\helpers\Html::svg(Object(craft\elements\Asset), NULL, NULL) #3 /var/www/html/storage/runtime/compiled_templates/00/00dfac5f0992c25f351d43da2dcbe44e.php(44): craft\web\twig\Extension->svgFunction(Object(craft\elements\Asset)) #4 /var/www/html/vendor/twig/twig/src/Template.php(394): __TwigTemplate_d3010962a4e07244266292a53be2d611->doDisplay(Array, Array) #5 /var/www/html/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling(Array, Array) #6 /var/www/html/vendor/twig/twig/src/Template.php(379): Twig\Template->display(Array) #7 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(40): Twig\Template->render(Array, Array) #8 /var/www/html/vendor/twig/twig/src/Environment.php(277): Twig\TemplateWrapper->render(Array) #9 /var/www/html/vendor/craftcms/cms/src/web/View.php(446): Twig\Environment->render('test/svg', Array) #10 /var/www/html/vendor/craftcms/cms/src/web/View.php(499): craft\web\View->renderTemplate('test/svg', Array) #11 /var/www/html/vendor/craftcms/cms/src/web/TemplateResponseFormatter.php(56): craft\web\View->renderPageTemplate('test/svg', Array, 'site') #12 /var/www/html/vendor/yiisoft/yii2/web/Response.php(1098): craft\web\TemplateResponseFormatter->format(Object(craft\web\Response)) #13 /var/www/html/vendor/craftcms/cms/src/web/Response.php(286): yii\web\Response->prepare() #14 /var/www/html/vendor/yiisoft/yii2/web/Response.php(339): craft\web\Response->prepare() #15 /var/www/html/vendor/yiisoft/yii2/base/Application.php(390): yii\web\Response->send() #16 /var/www/html/web/index.php(12): yii\base\Application->run() #17 {main} {"memory":1609776,"exception":"[object] (Error(code: 0): Call to a member function getFileStream() on null at /var/www/html/vendor/craftcms/cms/src/elements/Asset.php:2240)"}
{% set icon = craft.assets.filename('CloudArrowUp.svg').one %} {% if icon %} {% dd svg(icon) %} {% endif %}
Fun fact and workaround for now:
If you call the url method before the svg function, it works:
{% set icon = craft.assets.filename('CloudArrowUp.svg').one %} {% if icon %} {% do icon.url %} {% dd svg(icon) %} {% endif %}
Svg content is output
An empty string is return, an error is logged
4.4.0-beta.2
8.1.13
Linux 5.15.79.1-microsoft-standard-WSL2
MySQL 5.7.14
Imagick 3.7.0 (ImageMagick 6.9.11-60)
-
Hi, thanks for reporting! A PR to fix this has been created.
Fixed for the next release via #12736.
4.4.0-beta.3 is out with that fix.
What happened?
Description
Using the
svg
function with an svg icon returns an empty string.Steps to reproduce
Fun fact and workaround for now:
If you call the url method before the svg function, it works:
Expected behavior
Svg content is output
Actual behavior
An empty string is return, an error is logged
Craft CMS version
4.4.0-beta.2
PHP version
8.1.13
Operating system and version
Linux 5.15.79.1-microsoft-standard-WSL2
Database type and version
MySQL 5.7.14
Image driver and version
Imagick 3.7.0 (ImageMagick 6.9.11-60)
Installed plugins and versions
-