1
EntityMetadataWrapper set()のサニタイズされたテキスト入力
検索の結果、EntityMetadataWrapper set()関数を使用してエンティティフィールドを更新する多くの例を見つけ、モジュールに正常に実装しました。しかし、私はあなたが渡すことができるさまざまな配列オプションに関するドキュメント/ベストプラクティスの方法で多くを見つけることができませんでしたset()。データを更新する方法によって、後で予期しない問題が発生しないことを確認したいと思います。 フォーム送信コールバックでテキストフィールド値を直接更新しています。 function hook_FORM_ID_submit(&$form, &$form_state) { // Get the node. $node = node_load($form_state['nid']); // Create entity metadata wrapper to get and set values easily. $node_wrapper = entity_metadata_wrapper('node', $node, array('bundle', $node->type)); // Set fields $node_wrapper->field_quip->set(array("value" => $form_state['values']['field_quip']['value'])); $node_wrapper->field_short_sentence_summary->set(array("value" => $form_state['values']['field_short_sentence_summary']['value'])); // Save node. $node_wrapper->save(); } set()キーを1つだけ持つ配列を渡しています:value。これは正常に動作しているようです。ただし、value()新しい値を設定する前に同じフィールドを呼び出すと、3つのキーを持つ配列が返されます。 $original_value = $node_wrapper->field_quip->value(); // …