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