Lo que he instalado en mi sitio son los módulos Entity API y Entityform. El módulo Entityform me permite crear formularios que cualquier usuario puede enviar y los campos de formularios están disponibles para que yo los use en las vistas, de forma similar a cómo funcionaría un tipo de contenido.
Normalmente, para extraer el valor de un campo de un nodo en mi plantilla con php, haría lo siguiente:
<?php echo $node->field_name[$node->language][0]['value']; ?>
Sin embargo, esto no funciona con entidades / entidades.
¿Alguien sabe de una manera de hacer esto para un campo dentro de una entidad de forma? Algunas personas han sugerido usar devel y la función dpm () pero tampoco tengo idea de cómo usarlas.
Algunos ejemplos específicos sobre cómo puedo obtener el valor de este campo realmente me ayudarían mucho.
:)
Sin usar el módulo Entity API, para obtener el valor de un campo asociado con una entidad, usa field_get_items () ; simplemente pasa el tipo de entidad, el objeto de entidad y el nombre del campo.
Por ejemplo, para obtener el cuerpo de un comentario, use el siguiente código.
Para obtener el cuerpo de un nodo, puede usar el siguiente código.
El objeto de entidad es el objeto devuelto por entity_load () , o una función de carga específica para esa entidad, como node_load () , comment_load () o taxonomy_term_load () . En Drupal 8, esas funciones son envoltorios para
entity_load()
.Si desea mostrar el contenido del campo, debe usar field_view_field () .
fuente
Normalmente puede obtener propiedades de $ node porque usted o algún código que está utilizando está llamando a node_load () de antemano.
Debe cargar completamente una entidad antes de poder acceder a sus propiedades.
Use entity_load () http://api.drupal.org/api/drupal/includes%21common.inc/function/entity_load/7
Entonces realmente tendrá un objeto de entidad cargado que puede obtener en los campos de.
Usar dpm () es lo mismo que cualquier otra función, solo necesita instalar el módulo de desarrollo.
Entonces, haz algo como esto:
fuente
Tratar:
Esto debería imprimir el valor del campo.
Si es una matriz, intente esto:
Recuerde que esta es la salida sin procesar y, dependiendo de dónde provenga el valor, es posible que deba desinfectar el valor manualmente aquí.
Ver: función field_get_items
fuente
Coloque esto dentro de uno de sus módulos y vaya a la página del formulario y encontrará la información que está buscando.
fuente
En lugar de usar dpm e instalar ese módulo, uso:
Esperemos que esto te ayude a profundizar en el valor.
fuente