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

于 2012-09-19T16:56:52.147 回答