node\u save在将值存储到mysql数据库时出现问题

v7pvogib  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(302)

我在node\u中遇到了一个问题,保存在drupal中。
下面是我的代码:

function retrax_notify_create(){

    $nodeId = array();  
    $nodeObj = new stdClass(); // We create a new node object
    $nodeObj->type = "re_trax_comments_and_notes"; // Or any other content type you want
    $nodeObj->title = "Re-Trax Comments";
    $nodeObj->language = LANGUAGE_NONE; 
    node_object_prepare($nodeObj); // Set some default values.

    $nodeObj->uid = 474; 

        $nodeObj->field_userid_ref['und'][0]['value'] = '5';

        $nodeObj->field_siteid_ref['und'][0]['value'] = '6';

        $nodeObj->field_notify_count['und'][0]['value'] = 7;

    $nodeObj = node_submit($nodeObj); 
    node_save($nodeObj);
    $nodeId[nid] = $nodeObj->nid;

    echo '<pre>';
    print_r($nodeObj);
    return $nodeId;         

}

当我运行钩子菜单时,默认值如下 type , title , uid 将存储在节点表中,并生成节点id。
但其他三个表的值不会保存为
字段\数据\字段\用户ID \参考
字段\数据\字段\站点ID \参考
字段\数据\字段\通知\计数
其中一个表的数据库列如下所示

field_userid_ref_value  varchar(255)            Yes NULL

所有的内容类型都是正确的,但仍然没有将值保存到相应的表中。
我做错什么了?

4bbkushb

4bbkushb1#

我认为这样的台词:

$nodeObj->field_userid_ref['und'][0]['value'] = '5';

你错了。只有参数“value”才是真正有值的字段类型,即文本字段。如果有节点引用或标记引用字段,则应该有其他内容。可能:

$nodeObj->field_userid_ref['und'][0]['nid'] = '5';

对于节点,或

$nodeObj->field_userid_ref['und'][0]['tid'] = '5';

标签,或

$nodeObj->field_userid_ref['und'][0]['uid'] = '5';

…对于用户,取决于这些字段引用的内容。。。
从后端以“公共”方式创建一些节点,然后打印它,查看存在哪些字段。

相关问题