Saltar al contenido

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

Este dilema se puede tratar de diversas formas, sin embargo te enseñamos la respuesta más completa en nuestra opinión.

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 a la que se hace referencia, 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 usar 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 

El filtro para el estilo de 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 una identificación de archivo de imagen. Cada imagen en Drupal 8 es una entidad de archivo.

Puedes probar en 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);

Nos puedes apoyar nuestro estudio poniendo un comentario o dejando una valoración te damos las gracias.

¡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 *