Saltar al contenido

Drupal: cómo obtener una URL de imagen de un campo en una plantilla de ramitas

Solución:

Un campo de imagen almacena la identificación del archivo en target_id. Puede acceder a la identificación del archivo con:

{{ node.field_main_image.target_id }}

Hay una segunda propiedad en el campo de la imagen. Es para la entidad referenciada, en este caso el objeto de archivo. Esto no es visible en la salida de depuración, porque se calcula:

{{ node.field_main_image.entity }}

En el objeto de archivo se encuentra el campo uri

{{ node.field_main_image.entity.uri.value }}

que puede utilizar para obtener la URL de la imagen original

{{ file_url(node.field_main_image.entity.uri.value) }}

o la URL de un estilo de imagen

{{ node.field_main_image.entity.uri.value | image_style('thumbnail') }}

El filtro para el estilo de la imagen es parte de este módulo que debes instalar:

https://www.drupal.org/project/twig_tweak

No puede obtener la URL de la imagen directamente en la plantilla twig ya que los campos de imagen solo tienen la identificación del archivo de imagen. Cada imagen en Drupal 8 es una entidad de archivo.

Puedes probar template_preprocess_node():

$image_file_id = $variables['node']->field_image[0]->target_id;
$image_file = DrupalfileEntityFile::load($image_file_id);
$uri = $image_file->uri->value;
$variables['url']=file_create_url($uri);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *