Puncte:0

Profilurile clienților nu pot conține mai mult de 1 valoare, chiar și atunci când permit mai multe profiluri pentru fiecare utilizator

drapel in

Am un API personalizat care creează noi Client profiluri cu adrese/e-mailuri diferite:

$profileStorage->create([
        'type' => 'client',
        'uid' => $this->currentUser->id(),
        „stare” => 1,
        'address' => $addressData
])
$profil->setDefault(true);
$profil->salvare();

Funcționează creând acele profiluri și atașându-le utilizatorului curent. Cu toate acestea, apoi după ori de câte ori încerc să editez câmpurile contului utilizatorului sau doar folosesc $user->validate() Primesc aceasta eroare:

"customer_profiles: Profiluri client: acest câmp nu poate conține mai mult de 1 valoare."

Cu toate acestea, Tipul de profil client are selectate atât „Permite mai multe profiluri per utilizator”, cât și „Profilurile de acest tip reprezintă profiluri de clienți Commerce”.

Acesta a fost cazul în Drupal 8 și 9.

introduceți descrierea imaginii aici

ACTUALIZAȚI:

Se pare că această eroare apare de fapt la $entity->validate(), nu pe salva()

introduceți descrierea imaginii aici

Acesta este conținutul core.entity_form_display.profile.customer.default.yml

uuid: xxx7f0e2-d809-4d2b-9388-af399c98xxxx
langcode: en
stare: adevărat
dependențe:
  config:
    - câmp.câmp.profil.adresă.client
    - field.field.profile.customer.field_email
    - profil.tip.client
  modul:
    - abordare
  aplicat:
    modul:
      - comerț_comanda
_nucleu:
  default_config_hash: xxxxVkJkUSPhil9xxxxdTivMqxCUloT_71AHWxxxx
id: profile.customer.default
targetEntityType: profil
pachet: client
mod: implicit
conţinut:
  abordare:
    tip: address_default
    greutate: 0
    regiune: continut
    setări: { }
    setări_terți: { }
  field_email:
    tip: email_default
    greutate: 1
    regiune: continut
    setari:
      substituent: ''
      dimensiune: 60
    setări_terți: { }
ascuns: { }

si continutul lui profil.tip.client.yml

uuid: xxxx4f32-xxxx-xxxx-xxxx-bd10470bxxxx
langcode: en
stare: adevărat
dependențe:
  aplicat:
    modul:
      - comerț_comanda
setări_terți:
  commerce_order:
    customer_profile_type: adevărat
_nucleu:
  default_config_hash: xxxxAQDUxxxxwavxxxxlcbJx9xxxxFtCq8l73Axxxx
id: client
etichetă: client
display_label: „Informații despre client”
multiplu: adevărat
înregistrare: fals
roluri:
  authenticated: autentificat
  verified_email: verified_email
  verificat_cc: verificat_cc
allow_revisions: false
new_revision: fals
Puncte:0
drapel it

Această setare înseamnă că clientul poate avea mai multe profiluri de acest tip atribuite uid-ului său, nu că fiecare câmp de referință de profil poate fi folosit în sine pentru referințe de mai multe valori. Acestea fiind spuse, nu cunosc un domeniu din Commerce Core numit profiluri_client. Este ceva personalizat? Este posibil să aveți nevoie doar să actualizați definiția sa pentru a putea pune mai multe referințe în ea.

drapel in
deci creez/atașez Profilul incorect? Scopul meu este ca „clientul să aibă mai multe profiluri de acest tip atribuite uid-ului său”.
drapel in
De asemenea, cred că „customer_profiles” este doar numele mașinii de la crearea unui tip de profil numit „Clienți”. Ce sugerezi mai exact să actualizez?
drapel it
Aveți un câmp pe site-ul dvs. numit „Profiluri client”. De unde a venit asta?
drapel in
Mi-am postat fișierele yml dacă asta ar putea ajuta. De asemenea, am descoperit că eroarea apare pe `$user->validate()` nu `$user->save()`
drapel in
De asemenea, `Profilurile clientului` este un `Tip de profil`, nu un câmp, furnizat de Commerce: https://docs.drupalcommerce.org/commerce2/developer-guide/customers/profiles/profile-configuration - împreună cu `field_address` . Am adăugat un `field_email`.
drapel it
Bine. În acest caz, nu înțeleg mesajul de eroare, care indică că un câmp nu se validează corect. Nu sunt sigur că pot face mult mai mult pentru a ajuta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.