【问题标题】:drupal 7 services 3.0 create node with imagedrupal 7 services 3.0 使用图像创建节点
【发布时间】:2014-04-29 11:04:27
【问题描述】:

我真的很纠结这个;我正在上传图像文件并获取 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 行)。

以前有人遇到过这种情况吗?任何建议都非常感谢。

【问题讨论】:

    标签: javascript drupal-7


    【解决方案1】:

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

    我确实通过只做补丁的一部分来让它工作。

    找到 modules/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'])) {
    

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

    【讨论】:

    • 应用您链接的补丁后,我不得不改变我的工作流程;从发布节点开始,然后是所有图像,最后我更新了节点,一张一张地添加了每个图像。这可行,但不是最有效的方法。
    • 我同意这不是一个好的解决方案,这个问题肯定需要注意。使用服务附加文件肯定不是不常见的要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多