ฉันมี API แบบกำหนดเองที่สร้างใหม่ ลูกค้า
โปรไฟล์ที่มีที่อยู่ / อีเมลต่างกัน:
$profileStorage->สร้าง([
'ประเภท' => 'ลูกค้า',
'uid' => $this->currentUser->id(),
'สถานะ'=> 1,
'ที่อยู่' => $addressData
])
$profile->setDefault(จริง);
$profile->save();
มันทำงานสร้างโปรไฟล์เหล่านั้นและแนบกับผู้ใช้ปัจจุบัน อย่างไรก็ตาม เมื่อใดก็ตามที่ฉันพยายามแก้ไขฟิลด์บัญชีผู้ใช้หรือเพียงแค่ใช้ $user->validate()
ฉันได้รับข้อผิดพลาดนี้:
"customer_profiles: โปรไฟล์ลูกค้า: ฟิลด์นี้ไม่สามารถเก็บค่าได้มากกว่า 1 ค่า"
อย่างไรก็ตาม ประเภทโปรไฟล์ลูกค้ามีทั้ง "อนุญาตหลายโปรไฟล์ต่อผู้ใช้" และ "โปรไฟล์ประเภทนี้แสดงถึงโปรไฟล์ลูกค้า Commerce"
นี่เป็นกรณีใน Drupal 8 และ 9
อัปเดต:
ดูเหมือนว่าข้อผิดพลาดนี้จะเกิดขึ้นจริงที่ $entity->ตรวจสอบ ()
, ไม่บน บันทึก()
นี่คือเนื้อหาของ core.entity_form_display.profile.customer.default.yml
ใช้งาน: xxx7f0e2-d809-4d2b-9388-af399c98xxxx
รหัสภาษา: th
สถานะ: จริง
การพึ่งพา:
การกำหนดค่า:
- field.field.profile.customer.address
- field.field.profile.customer.field_email
- profile.type.customer
โมดูล:
- ที่อยู่
บังคับใช้:
โมดูล:
- commerce_order
_core:
default_config_hash: xxxxVkJkUSPhil9xxxxdTivMqxCUloT_71AHWxxxx
id: profile.customer.default
targetEntityType: โปรไฟล์
กลุ่ม: ลูกค้า
โหมด: ค่าเริ่มต้น
เนื้อหา:
ที่อยู่:
ประเภท: address_default
น้ำหนัก: 0
ภูมิภาค: เนื้อหา
การตั้งค่า: { }
third_party_settings: { }
field_email:
ประเภท: email_default
น้ำหนัก: 1
ภูมิภาค: เนื้อหา
การตั้งค่า:
ตัวยึดตำแหน่ง: ''
ขนาด: 60
third_party_settings: { }
ที่ซ่อนอยู่: { }
และเนื้อหาของ profile.type.customer.yml
ใช้: xxxx4f32-xxxx-xxxx-xxxx-bd10470bxxxx
รหัสภาษา: th
สถานะ: จริง
การพึ่งพา:
บังคับใช้:
โมดูล:
- commerce_order
third_party_settings:
commerce_order:
customer_profile_type: จริง
_core:
default_config_hash: xxxxAQDUxxxxwavxxxxlcbJx9xxxxFtCq8l73Axxxx
id:ลูกค้า
ป้ายกำกับ: ลูกค้า
display_label: 'ข้อมูลลูกค้า'
หลาย: จริง
การลงทะเบียน: เท็จ
บทบาท:
รับรองความถูกต้อง: รับรองความถูกต้อง
Verify_email: ยืนยันอีเมลแล้ว
Verify_cc: ยืนยันแล้ว _cc
allow_revisions: เท็จ
new_revision: เท็จ