Điểm:0

Hồ sơ khách hàng không thể chứa nhiều hơn 1 giá trị, ngay cả khi cho phép nhiều hồ sơ trên mỗi người dùng

lá cờ in

Tôi có API tùy chỉnh để tạo mới khách hàng hồ sơ với các địa chỉ / email khác nhau:

$profileStorage->tạo([
        'loại' => 'khách hàng',
        'uid' => $this->currentUser->id(),
        'trạng thái'=> 1,
        'địa chỉ' => $addressData
])
$profile->setDefault(true);
$profile->save();

Nó hoạt động tạo các hồ sơ đó và đính kèm chúng với người dùng hiện tại. Tuy nhiên, sau bất cứ khi nào tôi cố gắng chỉnh sửa các trường tài khoản của người dùng hoặc chỉ sử dụng $user->xác thực() tôi nhận được lỗi này:

"customer_profiles: Hồ sơ khách hàng: trường này không thể chứa nhiều hơn 1 giá trị."

Tuy nhiên, Loại hồ sơ khách hàng đã chọn cả "Cho phép nhiều hồ sơ trên mỗi người dùng" và "Hồ sơ thuộc loại này đại diện cho hồ sơ khách hàng Thương mại".

Đây là trường hợp trong Drupal 8 và 9.

nhập mô tả hình ảnh ở đây

CẬP NHẬT:

Có vẻ như lỗi này thực sự xảy ra tại $entity->xác thực(), không bật tiết kiệm()

nhập mô tả hình ảnh ở đây

Đây là nội dung của core.entity_form_display.profile.customer.default.yml

uuid: xxx7f0e2-d809-4d2b-9388-af399c98xxxx
mã ngôn ngữ: en
trạng thái: đúng
phụ thuộc:
  cấu hình:
    - field.field.profile.customer.address
    - field.field.profile.customer.field_email
    - hồ sơ.type.khách hàng
  mô-đun:
    - Địa chỉ
  thi hành:
    mô-đun:
      - thương mại_đặt hàng
_cốt lõi:
  default_config_hash: xxxxVkJkUSPhil9xxxxdTivMqxCUloT_71AHWxxxx
id: profile.customer.default
targetEntityType: hồ sơ
gói: khách hàng
chế độ: mặc định
Nội dung:
  Địa chỉ:
    gõ: address_default
    trọng lượng: 0
    khu vực: nội dung
    cài đặt: { }
    third_party_settings: { }
  trường_email:
    gõ: email_default
    trọng lượng: 1
    khu vực: nội dung
    cài đặt:
      giữ chỗ: ''
      kích thước: 60
    third_party_settings: { }
ẩn giấu: {  }

và nội dung của hồ sơ.type.customer.yml

uuid: xxxx4f32-xxxx-xxxx-xxxx-bd10470bxxxx
mã ngôn ngữ: en
trạng thái: đúng
phụ thuộc:
  thi hành:
    mô-đun:
      - thương mại_đặt hàng
third_party_settings:
  thương mại_đặt hàng:
    customer_profile_type: true
_cốt lõi:
  default_config_hash: xxxxAQDUxxxxwavxxxxlcbJx9xxxxFtCq8l73Axxxx
id: khách hàng
nhãn: Khách hàng
display_label: 'Thông tin khách hàng'
nhiều: đúng
đăng ký: sai
vai trò:
  xác thực: xác thực
  verify_email: đã xác minh_email
  đã xác minh_cc: đã xác minh_cc
allow_revisions: sai
new_revision: sai
Điểm:0
lá cờ it

Cài đặt đó có nghĩa là khách hàng có thể có nhiều hồ sơ thuộc loại đó được chỉ định cho uid của họ, chứ không phải bản thân mỗi trường tham chiếu hồ sơ đều có thể được sử dụng cho nhiều tham chiếu giá trị. Điều đó nói rằng, tôi không biết về một lĩnh vực trong Commerce Core được gọi là khách hàng_hồ sơ. Đây có phải là một cái gì đó tùy chỉnh? Bạn có thể chỉ cần cập nhật định nghĩa của nó để có thể đưa nhiều tham chiếu vào đó.

lá cờ in
vậy tôi đang tạo/đính kèm Hồ sơ không chính xác? Mục tiêu của tôi là "khách hàng có thể có nhiều hồ sơ thuộc loại đó được gán cho uid của họ".
lá cờ in
Ngoài ra, tôi nghĩ "customer_profiles" chỉ là tên máy khi tạo Loại hồ sơ có tên "Khách hàng". Chính xác bạn đang đề nghị tôi cập nhật điều gì?
lá cờ it
Bạn có một trường trên trang web của mình có tên là "Hồ sơ khách hàng". Thứ đó đã đến từ đâu?
lá cờ in
Tôi đã đăng các tệp yml của mình nếu điều đó có thể hữu ích. Cũng đã phát hiện ra lỗi xảy ra trên `$user->validate()` chứ không phải `$user->save()`
lá cờ in
Ngoài ra, `Hồ sơ khách hàng` là một `Loại hồ sơ` không phải là một trường, do Commerce cung cấp: https://docs.drupalcommerce.org/commerce2/developer-guide/customers/profiles/profile-configuration - cùng với `field_address` của nó . Tôi đã thêm một`field_email`.
lá cờ it
Vâng. Trong trường hợp đó, tôi không hiểu thông báo lỗi cho biết một trường không hợp lệ. Tôi không chắc mình có thể làm được gì nhiều hơn để giúp đỡ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.