content
contient les tableaux de rendu basés sur les formateurs configurés.
Si vous souhaitez accéder aux valeurs réelles, vous souhaitez y accéder via l'objet entité. Habituellement, cela est déjà disponible pour votre modèle, par exemple node
. Pour votre cas, c'est un peu spécial car le block_content est rendu dans le contenu du bloc sans son propre modèle, vous devez donc le rendre disponible vous-même de la manière yourtheme_preprocess_block($variables)
suivante:
if (isset($variables['elements']['content']['#block_content'])) {
$variables['block_content'] = $variables['elements']['content']['#block_content'];
}
Ensuite, vous pouvez accéder à une valeur de champ avec block_content.field_name.property
. Donc dans votre cas block_content.field_align.value
,. La propriété est value
pour la plupart des types de champs, pour les références, vous pouvez soit l'utiliser target_id
pour l'ID, soit entity
pour l'objet entité référencé. Oui, vous pouvez accéder directement aux champs à ce sujet, mais assurez-vous de toujours vérifier qu'une référence existe sinon vous pouvez vous retrouver avec des erreurs fatales ou des exceptions. Pour accéder au libellé d'une référence de terme par exemple, vous pouvez y accéder en tant que block_content.field_tags.entity.name.value
.
Si vous ne spécifiez pas le delta de champ, il est par défaut le premier. Si vous souhaitez accéder à un autre delta, vous pouvez utiliser entity.field_name.1.value
et ainsi de suite. Vous pouvez également les parcourir en boucle.
Tout cela mappe directement sur PHP, vous pouvez également le faire $block_content->field_tags->entity->name->value
en pré-traitement et dans d'autres endroits où vous avez le block_content.