web-dev-qa-db-ja.com

プログラムでリストフィールドの許可された値を更新する方法は?

Drupal 7.でProfile2アカウントの選択リストを作成しました。7。許可された値のリストにいくつかの値を追加しました。次に、プログラムでそのリストの値を更新します(追加、削除、または更新)これらの更新をデータベースにコミットするため、form_alterを使用したくありません。私の問題は、これらの値がデータベースのどこに格納されているか、またはそれらの値をプルする方法を見つけることができないようです。 Profile2から、更新して保存します。

私はこの特定の問題についてハイとローをグーグルで調べましたが、これを行う方法についての答えを見つけることができません。誰かが私を助けてくれることを願っています。

ありがとう。

10
user5013

に沿って何か...

// Get the field info
$info = field_info_field('field_some_field');

// Get a reference to the values
$values = &$info['settings']['allowed_values'];

// Manipulate the values in some way, e.g.
$values['new_value'] = 'New Value';

// Save the field
field_update_field($info);
23
Clive

allowed_values_functionコールバック付き:

'settings' => array(
  'allowed_values' => array(),
  'allowed_values_function' => '_my_feature_module_options_list',
),

エンティティフィールドの動的許可値オプションの作成 を参照してください。

3
mpp