Drupal 7 未定义的索引:使用hook\u node\u insert()Drupal 7时为0
我正在编写一个自定义模块,在创建新节点时使用Drupal 7 未定义的索引:使用hook\u node\u insert()Drupal 7时为0,drupal-7,Drupal 7,我正在编写一个自定义模块,在创建新节点时使用hook\u node\u insert()将数据插入数据库。但是,如果我将节点中的任何字段留空而不添加任何内容(非必填字段)并保存该字段,则即使我使用isset函数检查空字段,也会出现以下错误 Notice: Undefined index: 0 in add_customer_node_insert() in line no:5 第5行 $node_id = isset($node->field_id['und'])? $node->
hook\u node\u insert()
将数据插入数据库。但是,如果我将节点中的任何字段留空而不添加任何内容(非必填字段)并保存该字段,则即使我使用isset函数检查空字段,也会出现以下错误
Notice: Undefined index: 0 in add_customer_node_insert() in line no:5
第5行
$node_id = isset($node->field_id['und'])? $node->field_id['und']['0']['value']:NULL;
您只检查是否设置了
$node->field\u id['und']
,而不检查多维数组$node->field\u id['und'][0]
的下一部分是否已设置,用于分配给$node\u id
。把你的陈述改为
isset($node->field_id['und']['0']['value'])
在下面的代码中
$node_id = isset($node->field_id['und'])? $node->field_id['und']['0']['value'] : NULL;
$node->field_id['und']
是一个数组。您应该使用empty()
函数来检查这一点,例如
$node_id = !empty($node->field_id['und']) ? $node->field_id['und']['0']['value'] : NULL;
或者如果要使用isset()
函数
$node_id = isset($node->field_id['und']['0']['value']) ? $node->field_id['und']['0']['value'] : NULL;