Drupal 7 具有多个选择字段(如复选框或选择字段)的用户_save()

Drupal 7 具有多个选择字段(如复选框或选择字段)的用户_save(),drupal-7,drupal-modules,Drupal 7,Drupal Modules,“我的自定义注册表”模块有一个选择字段,允许新用户选择一个或多个城市。在我的搜索中,我没有找到任何可以借鉴的例子。例如,如果要保存的城市密钥为20和53,是否有人有以下代码中“field_city”=>的示例 $edit = array( 'name' => 'tester', 'pass' => user_password(), 'mail' => 'tester@testing.com', 'status' => 0, 'init' => '

“我的自定义注册表”模块有一个选择字段,允许新用户选择一个或多个城市。在我的搜索中,我没有找到任何可以借鉴的例子。例如,如果要保存的城市密钥为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);

这是我自己想出来的。如果对任何人都有帮助,对于分类术语引用,列名是“tid”,而不是其他字段的“value”。我将注册代码更改为:

$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是一个基数(0,1,2…),存储在数据库的“delta”列中,$val是城市的ID。

我自己找到了这个。如果对任何人都有帮助,对于分类术语引用,列名是“tid”,而不是其他字段的“value”。我将注册代码更改为:

$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是一个基数(0、1、2…),存储在数据库的“delta”列中,$val是城市的ID