Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 7 未定义的索引:使用hook\u node\u insert()Drupal 7时为0_Drupal 7 - Fatal编程技术网

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;