web-dev-qa-db-ja.com

Scald:エンティティメタデータラッパーを使用してノードに複数のメディアを追加するにはどうすればよいですか?

私は実際にはかなり単純な私の問題の解決策を探しています。プログラムでノードを作成し、そのすべてのフィールドにデータを入力する必要があるインポートタスクを実行しています。

Scald モジュールを使用しているため、ノードに複数のメディアを追加できます。しかし、いくつかのメディアをノードに関連付ける方法がわかりませんか?

私は以下を試しました:

foreach ($file_atoms as $i => $atom) {
    $node_wrapper->field_atom[$i] = $atom->sid;
}

または:

foreach ($file_atoms as $i => $atom) {
    $node_wrapper->field_atom[$i]->set($atom->sid);
}

しかし、次のエラーが発生します。

エラー:タイプEntityDrupalWrapperのオブジェクトを配列として使用できません

このページ のドキュメントに従いましたが、機能していないようです。

誰かが私を助けることができますか?

タクソノミーで同じ問題が発生しています。ノードラッパーに複数の値を設定できません。

1
Seb

問題は、field_atomフィールドが複数として構成されていないことです。

そうでない場合、EntityDrupalWrapperオブジェクトを使用すると、0デルタを経由する代わりに、フィールドに直接アクセスできます。

field_atomオプションを修正して複数のメディアを受け入れるだけで、コードは正常に機能します。

0