【问题标题】:Drupal 7 - Adding data in specific content type fieldDrupal 7 - 在特定内容类型字段中添加数据
【发布时间】:2013-10-13 23:37:36
【问题描述】:

目前我正在为 Drupal 7 构建安装配置文件。 我创建多个字段并为特定内容类型的字段创建实例。

现在我向内容类型添加了一个新节点,但我不知道如何将数据添加到为此内容类型生成的字段中。这必须发生在安装配置文件中,所以在代码中,并且没有对 Drupal 本身的解释。

节点是这样生成的:

$node          = new stdClass();
$node->title   = 'Test title';
node_save($node);

这当然不是完整的代码,只是为了给你一个想法。目前我将类型、状态、uid、title、promote、created、timestamp、sticky、format、language、teaser、body 和 revision 添加到 $node。现在我想添加我的自定义字段数据,有人知道怎么做吗?

【问题讨论】:

    标签: drupal installation


    【解决方案1】:

    类似...

    $node = new stdClass();
    $node->type = 'article';
    $node->title = 'Test title';
    $node->language = LANGUAGE_NONE;
    node_object_prepare($node);
    // Other properties...
    
    // Single cardinality
    $node->field_some_text_field[$node->language][0]['value'] = 'Some value';
    
    // Multiple cardinality
    $node->field_some_entity_reference_field[$node->language][]['target_id'] = 123;
    $node->field_some_entity_reference_field[$node->language][]['target_id'] = 456;
    
    node_save($node);
    

    【讨论】:

    • 这似乎对我不起作用,仔细检查它,它没有给出任何错误但该字段仍然是空的。
    • 它是什么类型的字段?每个都有不同的列名(上述数组中的最后一个索引),因此您的里程当然会根据您安装的字段类型而有所不同。以上肯定行得通,我已经用了几百次了
    • 这是一个文本字段。我创建了一个文本字段,创建了它的一个实例,现在尝试向其中添加一些文本,所有这些都使用安装配置文件。
    • 对于文本字段,它将是 $node->field_some_text_field[$node->language][0]['value'] = 'Some value';(显然将 field_some_text_field 替换为您的字段的全名)。我会检查您的字段实例是否正确创建。在你的代码运行之后,数据库中的field_data_xfield_revision_x 表是立即的(我的意思是当你使用调试器单步执行时——等到进程结束是不好的,因为缓存将被清除到那时)?
    • 感谢您提供的额外信息,在这里和那里进行了一些更改替换代码并让它工作!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多