以编程方式创建drupal节点并设置自定义选择列表字段

时间:2016-02-23 05:57:47

标签: php drupal

我有一个带有自定义字段的Drupal 7节点。将值设置为单个文本字段没有问题,但我不确定如何将我的选择列表字段设置为该字段的允许键之一。

这是我尝试将选择列表分配给'待定'的代码。键。

$node->field_referee_status['und'][0]['tid'] = 'pending';

节点创建代码:

// CREATE NODE
$node = new stdClass;
$node->type = 'referee';
$node->title = 'Referee report for xx';
$node->uid = $user->uid;
$node->status = FALSE;
$node->field_referee_status['und'][0]['tid'] = 'pending';
$node->field_referee_id['und'][0]['value'] = 'test';
$node->field_testff['und'][0]['value'] = "testworked";
node_object_prepare($node);
node_save($node);

问题:有人知道以编程方式创建Drupal节点时将键值分配给自定义选择列表字段的正确方法吗?

3 个答案:

答案 0 :(得分:5)

这应该有效

更改

$node->field_referee_status['und'][0]['tid'] = 'pending';

$node->field_referee_status['und'][0]['value'] = 'pending';

答案 1 :(得分:1)

尝试增加0(delta)

$node->field_referee_status['und'][0]['value'] = 'pending';

$node->field_referee_status['und'][1]['value'] = 'approved';

答案 2 :(得分:1)

而不是传递"$node->field_referee_status['und'][0]['tid']"的“待定”文字。请尝试在这里传递它的tid。您可以使用以下功能获得“待定”期限。

语法:

taxonomy_get_term_by_name($name);

即。

$term = taxonomy_get_term_by_name('pending');
$node->field_referee_status['und'][0]['tid'] = $term->tid;