drupal7services3.0创建带有镜像的节点

drupal 7 services 3.0 create node with image

本文关键字:镜像 节点 创建 drupal7services3      更新时间:2023-09-26

我真的很纠结;我正在上传一个图像文件并获取fid,但随后创建节点并附加fid的请求失败了。尽管图像字段没有用图像fid填充并且图像没有附加到节点,但是节点被创建。

我使用这个ajax来发布节点:

$.ajax({
    url: localStorage.appurl+"/api/node.json",
    type: 'post',
   data: "node[title]=new node&node[type]=ftritem&node[field_ftritem_images][und][0]    [fid]=7895",
    dataType: 'json',
    headers: {
      'X-CSRF-Token': localStorage.usertoken
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      console.log('error '+errorThrown);
    },
    success: function (data) {         
    console.log("Node created");
    }
  }); 

我收到这个错误:

注意:未定义的偏移量:image_field_widget_form()中的0(/var/www/dt11/modules/image/image.field.inc的第358行)。

注意:未定义的偏移量:file_field_widget_form()中的0(/var/www/dt11/modules/file/file.field.inc的第526行)。

以前有人面对过这种情况吗?任何建议都会得到高度评价。

Drupal核心出现问题。我在这里为它制造了一个问题,并提供了一个补丁,但它对我来说无法正常工作:https://www.drupal.org/node/1912458

我只做了补丁的一部分就让它发挥了作用。

找到模块/file/file.field.inc的第504行,并将其从以下位置更改:

if (($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED || $delta < $field['cardinality']) && empty($form_state['programmed'])) {

对此:

if (($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED || $delta < $field['cardinality'])) {

我不知道这是否会在其他地方产生不利的副作用,但它确实允许以您使用它的方式使用服务。