У меня есть собственный API, который создает новые Покупатель
профили с разными адресами/электронной почтой:
$profileStorage->создать([
'тип' => 'клиент',
'uid' => $this->currentUser->id(),
'статус'=> 1,
'адрес' => $addressData
])
$профиль->setDefault(true);
$профиль->сохранить();
Он работает, создавая эти профили и прикрепляя их к текущему пользователю. Однако после того, как я попытаюсь изменить поля учетной записи пользователя или просто использовать $пользователь->проверить()
Я получаю эту ошибку:
«customer_profiles: профили клиентов: это поле не может содержать более 1 значения».
Однако для типа профиля клиента выбраны «Разрешить несколько профилей для каждого пользователя» и «Профили этого типа представляют профили клиентов Commerce».
Так было в Drupal 8 и 9.
ОБНОВИТЬ:
Кажется, эта ошибка действительно возникает в $entity->проверить()
, не на спасти()
Это содержимое core.entity_form_display.profile.customer.default.yml
UUID: xxx7f0e2-d809-4d2b-9388-af399c98xxxx
код языка: en
статус: правда
зависимости:
конфигурация:
- поле.поле.профиль.адрес.клиента
- field.field.profile.customer.field_email
- профиль.тип.клиент
модуль:
- адрес
принудительно:
модуль:
- commerce_order
_основной:
default_config_hash: xxxxVkJkUSPhil9xxxxdTivMqxCUloT_71AHWxxxx
идентификатор: profile.customer.default
targetEntityType: профиль
пакет: клиент
режим: по умолчанию
содержание:
адрес:
тип: address_default
вес: 0
регион: содержание
настройки: { }
третьи_стороны_настройки: { }
field_email:
тип: электронная почта_по умолчанию
вес: 1
регион: содержание
настройки:
заполнитель: ''
размер: 60
третьи_стороны_настройки: { }
скрытый: { }
и содержание profile.type.customer.yml
UUID: xxxx4f32-xxxx-xxxx-xxxx-bd10470bxxxx
код языка: en
статус: правда
зависимости:
принудительно:
модуль:
- commerce_order
третьи_стороны_настройки:
коммерческий_заказ:
customer_profile_type: правда
_основной:
default_config_hash: xxxxAQDUxxxxwavxxxxlcbJx9xxxxFtCq8l73Axxxx
идентификатор: клиент
этикетка: Клиент
display_label: 'Информация о клиенте'
несколько: правда
регистрация: ложная
роли:
аутентифицированный: аутентифицированный
подтверждённая_почта: подтверждённая_почта
подтверждённый_cc: подтверждённый_cc
allow_revisions: ложь
новая_ревизия: ложь