web-dev-qa-db-ja.com

Drupal 7サービスjsonノードオブジェクト

Drupal 7のサービスモジュールに問題があるようです。たとえば、ノード作成リソースを使用してノードを送信すると、カスタムフィールドでも問題なくノードを作成できますが、問題は用語参照フィールド、値がそれらに到達することはありません。以下に例を示します。

var nodeCust={
node:{
  title: 'undefined test 1',
  type:'noticia',
  name: 'admin',
  body: { 
    und: [
    {value:'sdasdasd', format:'full_html'}
    ]
  },
  field_custom:{
und:[ {value: 'test placeholder'} ]
  },

  field_theterm:{
und:[ {tid:"1"}  ]
  }
 }
};

これは私がJSONで送信するオブジェクトであり、本文には値、タイトル、カスタムフィールドも含まれていますが、「theterm」フィールドはこのコンテンツタイプの用語参照フィールドであり、決してその値を取得しません:o(、すべてのウィジェット、オートコンプリート、リストなどを試してみましたが、これはRESTサービスコールw/JSONであるため、実際には影響しません。

誰かアイデアはありますか?ありがとう

4
neph

ノードを作成および更新するためのリソースメソッドはフォーム送信の薄いラッパーであるため、APIを介して送信するものの構造は、通常のノードフォームを介して送信するデータの構造と同じである必要があります。検証やほとんどのエラーでさえ、フォームハンドラーから発生します。

だから私の提案は、フォームがどのようにデータを送信するかを見るということです。それがおそらく答えを見つける場所だからです。

3
VoxPelli

私は、ノードオブジェクトをJSONとしてフォーマットする方法を理解するのと同様の問題を抱えています。奇妙なことに、たとえば、配列表記なしでtidを渡す必要があるようです。

{"title": "my title"、 "type": "my_type"、 "field_my_field_type":{"und":{"tid": "49"}}}

undの前後に角かっこがないことに注意してください。bodyなどの他のすべてのフィールドで角かっこを使用してフォーマットする必要があるため、これが機能する理由がわかりません。また、ポスター(Firefox用)を使用して投稿する場合と、アプリに同じJSON文字列を投稿する場合とでは、結果が異なります。これがわかったら教えてください。

1
user379468