在 eZ Publish 5 中,我有一个带有图像属性的类。
在 twig 模板中,我可以从属性参数中获取相对 url(例如 '/var/site/storage/image/...')。
现在我需要绝对网址。获得它的最佳方法是什么?
我应该获取请求信息并将基本网址附加到相对网址吗?或者有一个内置的方法?
谢谢
你应该这样做:
{{ asset( ez_image_alias( content.getField( 'image' ), content.versionInfo, 'original' ).uri, absolute=true ) }}
ez_image_alias 用于获取图像别名(显然),这里我们得到原始变化。然后我们获取图像别名的 uri,并将其传递给 symfony资产函数。
那应该行得通。
是的,这是正确的答案。只是不要忘记在之前添加一些测试,例如:
检查您要从中检索数据的内容字段是否存在以及该字段是否不为空:
{% if content.fields['myFieldIdentifier'] is defined and not ez_is_field_empty(content, 'myFieldIdentifier') %}
{# do the job #}
{% endif %}
以下是默认情况下 ImageFieldType 的呈现方式:
{% block ezimage_field %}
{% spaceless %}
{% if not ez_is_field_empty( content, field ) %}
<figure {{ block( 'field_attributes' ) }}>
{% set imageAlias = ez_image_alias( field, versionInfo, parameters.alias|default( 'original' ) ) %}
<img src="{% if imageAlias %}{{ asset( imageAlias.uri ) }}{% else %}//:0{% endif %}"{% if imageAlias.width is defined %} width="{{ imageAlias.width }}"{% endif %}{% if imageAlias.height is defined %} height="{{ imageAlias.height }}"{% endif %} alt="{{ field.value.alternativeText }}" />
</figure>
{% endif %}
{% endspaceless %}
{% endblock %}