【问题标题】:how to get value and set value of cck custom field如何获取 cck 自定义字段的值和设置值
【发布时间】:2011-10-05 21:19:40
【问题描述】:

我知道这可能是一个愚蠢的问题,但我有一个字段说 a 和 b,现在如何获取值并设置 a 和 b 的值。 现在我的代码是这样的..

$n = node_load($node->id);
$n->title;

我正在获取节点标题,我想知道如何获取和设置 a 和 b 的值,如果我设置了 a 和 b 的值,它将不会被保存使用

node_save($n);

??

【问题讨论】:

    标签: php drupal drupal-6 cck


    【解决方案1】:

    这在一定程度上取决于您使用的版本以及您使用的特定字段类型,但类似这样:

    // Drupal 6
    $n = node_load($node->id);
    $n->title = 'A title';
    $n->field_my_field_a[0]['value'] = 'A value';
    $n->field_my_field_b[0]['value'] = 'B value';
    node_save($n);
    
    // Drupal 7
    $n = node_load($node->id);
    $n->title = 'A title';
    $n->field_my_field_a[LANGUAGE_NONE][0]['value'] = 'A value';
    $n->field_my_field_b[LANGUAGE_NONE][0]['value'] = 'B value';
    node_save($n);
    

    在这两种情况下,当您调用node_save() 时,字段数据将与节点一起保存。

    值得注意的是,这两种情况下的0 索引都指向字段中的第一项。如果一个字段有多个值,您可以继续添加到数组中。 value 键可能需要根据字段保存的数据类型进行更改(例如,文件字段将保存其保存的文件的 fid(文件 ID),因此请进行相应调整。

    如果您使用的是 Drupal 7 版本,还可能需要将 LANGUAGE_NONE 替换为所需的语言代码。

    【讨论】:

      【解决方案2】:

      您的问题有点令人困惑,因为您从不解释 a 和 be 是什么。但是访问 cck 字段通常如下所示:

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

      如果是多重选择,则偏移量值超过零。您可以使用相同的方法设置值:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多