You are here

Drupal8下面,字段数据自动填充实例代码

经常会在项目中遇到,比如使用feeds导入,Drupal8下面只对文本字段支持的比较友好,

我们要根据A字段的值,经过一定的运算,赋值给B字段,通常我会使用下面的这段代码实现:


/**

 * @file

 * 为j_resource实现接口hook_ENTITY_TYPE_presave.

 */ 

function mycustom_j_resource_presave(EntityInterface $entity) {

  //j_marcid保存的字符串形式,根据它的值获取到对应的id,赋值给j_marc_id

  if (!empty($entity->j_marcid->value) && empty($entity->j_marc_id->target_id)) {

//查询

$j_marcid = $entity->j_marcid->value;

$ids = \Drupal::entityQuery('j_marc')

->condition('j_marcid', $j_marcid, '=')

->range(0, 1)

->execute();

    //根据查询过来的id来设置$entity->j_marc_id->target_id

if(!empty($ids)){

  $id = reset($ids);

      $entity->j_marc_id->target_id = $id;

}

  }

}


这是一段实例代码,用的时候套用即可。


论坛:

Drupal版本: