drupal 7 – Agregar propiedades a una entidad hook_schema_alter

Pregunta:

Necesito implementar un módulo personalizado que agregue campos y propiedades a una entidad definida en otro módulo. Sentí que la mejor manera de hacer esto era usando hook_schema_alter y hook_update_n para lograr las actualizaciones de la estructura de datos. Sin embargo, no veo estos nuevos campos en mi entidad. ¿Hay algún otro paso a seguir para adjuntarlos a la entidad mediante código?

Respuesta:

Con el módulo de API de entidad de terceros, puede:

  • Implemente hook_schema_alter () .
  • Use algo como db_add_field () para realizar el cambio en la base de datos en YOURMODULE_install () o updateN (). hook_schema_alter() realidad no crea el campo en la base de datos. Simplemente le dice a otros módulos a nivel de código que el campo existe en el esquema.
  • Implemente hook_entity_property_info_alter () . Esto le dice al módulo Entity API que este campo existe como una propiedad de alguna entidad, dónde vive en la tabla de la base de datos y cómo acceder a él.
    • Borre el caché para que aparezcan las nuevas propiedades.

Una propiedad de ejemplo en la matriz $ info es básicamente la siguiente:

  $properties['survey_count_to_complete'] = array(
    'label' => t('Number of Surveys to Complete'),
    'type' => 'integer',
    'description' => 'When a student logs in the system derives how many surveys they must complete. We store this value to make business logic easier.',
    // This is the schema field you made.
    'schema field' => 'survey_count_to_complete',
    'getter callback' => 'entity_property_verbatim_get',
    'setter callback' => 'entity_property_verbatim_set',
  );

Leave a Comment

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

Scroll to Top

web tasarım