Drupal 如何得到字段的值?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/henryhu712/article/details/81040696

直接的方法如下:

$node = node_load($nid);
$field_val = $node->field_name['und'][0]['value'];

用这个方法来获取字段的值有几个问题:

  • 多语言无法处理
  • 文本字段是[0][‘value’],但其他类型的字段并不适用,例如引用字段就是 [0][‘target_id’]

下面适用api方法获取字段值:

$node = node_load($nid);
$fields = field_get_items('node', $node, 'field_name');
$field_wrap = field_view_value('node', $node, 'field_name', $fields[0]);
$fval = $field_wrap['#markup'];

从上面可以看出,Drupal为了封装node接口,引入很多接口函数,并没有简化问题。这些复杂性只有在处理多个场景时才会体现出优势,通常遇到的问题并不复杂,因此适用Drupal的api反而增加了复杂性。

猜你喜欢

转载自blog.csdn.net/henryhu712/article/details/81040696