วิธีการสร้างผู้ใช้ใหม่โดยใช้ฟิลด์กำหนดเอง


18

ฉันต้องการสร้างผู้ใช้ด้วยฟิลด์ที่กำหนดเอง ฉันได้สร้างฟิลด์เพิ่มเติมผ่านการกำหนดค่า> คน> ข้อมูลไซต์> จัดการฟิลด์และฟิลด์เช่นชื่อนามสกุลเมือง ฯลฯ ฉันต้องการสร้างผู้ใช้ด้วยฟิลด์ที่กำหนดเองนี้

ฉันจะสร้างผู้ใช้โดยทางโปรแกรมได้อย่างไร

คำตอบ:


25

ใช้user_saveฟังก์ชั่น Drupal คุณสามารถสร้างผู้ใช้ใหม่เช่น:

$new_user = array(
  'name' => 'JohnDoe',
  'mail' => 'john.doe@email.com',
  'pass' => 'password123',
  'status' => 1,
  'field_custom_first_name' => array(LANGUAGE_NONE => array(array('value' => 'John'))), // This becomes $account->field_custom_first_name[LANGUAGE_NONE][0]['value']
  'field_custom_last_name' => array(LANGUAGE_NONE => array(array('value' => 'Doe'))),
  'access' => REQUEST_TIME,
  'roles' => array(), // No other roles than Authenticated
  //'roles' => array('10' => '10', '11' => '11'), // If you want to specify additional roles, the numbers are role_id's
);
user_save(NULL, $new_user);

ฉันไม่แน่ใจว่ามีอะไรaccessฉันได้คัดลอกสิ่งนี้จากความคิดเห็นของหน้า user_save เกี่ยวกับสิ่งที่ต้องทำและแก้ไขดังนั้นฉันไม่ได้ 100% ในสิ่งที่accessทำ ฉันจะสมมติว่าเป็นวันที่เข้าถึงล่าสุดดังนั้นหากเป็นผู้ใช้ใหม่ฉันคาดว่าไม่ควรตั้งค่า
Beebee

ขอบคุณมันใช้งานได้ดีสำหรับฉัน และขออภัยที่เล่นซ้ำช้า
Pranav Gandhi

@GandhiPranav อย่าลืมตอบคำถามของคุณหากพวกเขาช่วยคุณ วิธีนี้ช่วยให้ผู้เข้าชมในอนาคตรู้ว่าทางออกเฉพาะคือทางแก้ไขปัญหาเฉพาะของคุณและให้รางวัลแก่ผู้ตอบคำถามสำหรับความพยายามของพวกเขา คุณสามารถยอมรับคำตอบได้โดยคลิกเครื่องหมายถูกใต้ตัวบ่งชี้การลงคะแนน ขอบคุณ :)
ไคลฟ์

การเข้าใช้เป็นเพียงช่องทางเข้าถึงสุดท้าย (เช่นช่อง "สร้าง"
ergophobe

วิธีนี้ใช้เพื่อสร้างผู้ใช้ใหม่ แต่ไม่มีเอนทิตี "ที่ต้องการ" เหมือนในโหนดหรือไม่ มีบางสิ่งที่เกี่ยวข้องกับ entity_create_stub_entity ('user') หรือ entity_metadata_wrapper (.. )? ฉันถามเพราะฉันพยายามดิ้นรนที่จะทำมันให้เป็นแบบเอนทิตี้ .. :)
texas-bronius
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.