1

カスタム登録フォーム モジュールには、新規ユーザーが 1 つ以上の都市を選択できる選択フィールドがあります。私の検索では、引き出せる例が見つかりませんでした。たとえば、保存する都市キーが 20 と 53 の場合、次のコードで 'field_city' => がどのように見えるかの例を誰かが持っていますか?

$edit = array(
  'name' => 'tester',
  'pass' => user_password(),
  'mail' => 'tester@testing.com',
  'status' => 0,
  'init' => 'tester@testing.com',
  'access' => REQUEST_TIME,
  'field_city' => ,
  'field_zip_postal_code' => array(LANGUAGE_NONE => array(array('value' => '12345'))),
  'field_gender' => array(LANGUAGE_NONE => array(array('value' => 'Male'))),
);

user_save(drupal_anonymous_user(), $edit);
4

1 に答える 1

1

私はこれを自分で考え出しました。分類用語の参照の場合、列名は「tid」であり、他のフィールドの場合のように「値」ではありません。登録コードを次のように変更しました。

$edit = array(
  'name' => $form_state['step_information'][2]['stored_values']['name'],
  'pass' => user_password(),
  'mail' => $form_state['step_information'][2]['stored_values']['email'],
  'status' => 0,
  'init' => $form_state['step_information'][2]['stored_values']['email'],
  'access' => REQUEST_TIME,
  'field_zip_postal_code' => array(LANGUAGE_NONE => array(array('value' => $form_state['step_information'][3]['stored_values']['postal_code']))),
  'field_gender' => array(LANGUAGE_NONE => array(array('value' => $form_state['step_information'][3]['stored_values']['gender']))),
);

foreach(array_keys($form_state['step_information'][1]['stored_values']['cities']) as $key => $val) {
  $edit['field_city'][LANGUAGE_NONE][$key] = array('tid' => $val);
}

$new_account = user_save(drupal_anonymous_user(), $edit);

'foreach' ループでは、'$key' はデータベースの 'delta' 列に格納される基数 (0、1、2...) であり、'$val' は都市の ID です。

于 2012-09-19T16:56:52.147 に答える