未定义的索引:使用hook_node_insert()Drupal 7时为0

时间:2015-07-01 06:04:51

标签: drupal-7

我正在编写自定义模块,以便在创建新节点时使用hook_node_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; 

2 个答案:

答案 0 :(得分:0)

您只检查是否设置了$node->field_id['und'],但是如果设置了多维数组$node->field_id['und'][0]的下一部分,则用于分配给$node_id。将您的陈述改为

 isset($node->field_id['und']['0']['value'])

答案 1 :(得分:0)

在以下代码中

$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;