drupal 8 – Forma adecuada de crear un campo de imagen en una entidad de contenido

Pregunta:

Mi sitio permite a los usuarios cargar imágenes y agregarle un título y una descripción. Entonces hago una nueva clase que extiende ContentEntityBase . En su método baseFieldDefinitions() , puse un campo de imagen al lado de los campos de título y descripción:

$fields['image'] = BaseFieldDefinition::create('image')
  ->setLabel(t('Image'))
  ->setRequired(TRUE);

Espero ver un control de carga de archivo / imagen en el formulario de agregar / editar, pero no lo veo. Solo veo los cuadros de texto del título y la descripción.

Intenté encontrar " create ('image') " en todo el código fuente de Drupal pero no vi ningún ejemplo. Entonces, no sé si crear un campo de imagen como este es la forma correcta o no.

Respuesta:

Ver …

$entity->getFieldDefinition('image')

'file_extensions' => string(16) "png gif jpg jpeg"
'file_directory' => string(31) "[date:custom:Y]-[date:custom:m]"

Y editar

$fields['image'] = BaseFieldDefinition::create('image')
  ->setLabel(t('Image'))
  ->setDescription(t('Image field'))
  ->setSettings([
    'file_directory' => 'IMAGE_FOLDER',
    'alt_field_required' => FALSE,
    'file_extensions' => 'png jpg jpeg',
  ])
 ->setDisplayOptions('view', array(
    'label' => 'hidden',
    'type' => 'default',
    'weight' => 0,
  ))
  ->setDisplayOptions('form', array(
    'label' => 'hidden',
    'type' => 'image_image',
    'weight' => 0,
  ))
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE);

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım