it-swarm.com.de

Wie greifen Sie auf Benutzerprofilfelder zu?

In D7 würden Sie mit dem Modul profile2 das Element entity_metadata_wrapper aus dem Benutzerobjekt laden und dann auf Profilfelder als solche zugreifen: $ userWrapper-> profile_XXX-> field_XXX

Angesichts der Tatsache, dass Profile2 in Drupal 8) durch das Profilmodul ersetzt wird, entspricht das Drupal 8 entspricht dem Zugriff auf die Felder des Profilmoduls von einem Benutzerobjekt aus?

2
bohemier

Dies ist spät, aber andere Leute werden hierher kommen (genau wie ich).

Ich musste in den Quellcode des Profilmoduls gehen, um dies zu finden, aber ich denke, es ist offensichtlich, wenn Sie darüber nachdenken:

$list = \Drupal::entityTypeManager()
  ->getStorage('profile')
  ->loadByProperties([
    'uid' => $account->id(),
    'type' => 'profile_type',
  ]);

Du wirst es wahrscheinlich in einen Service einwickeln wollen - und wenn du es nicht tust, solltest du dir genau ansehen, warum nicht :-)

2
Adaddinsane

Sie können wie folgt auf den Wert der Profilfeldwerte zugreifen

$user = \Drupal\user\Entity\User::load(2);
$test1_value = $user->field_profile->entity->field_test1->value;

Stellen Sie vorher sicher, dass die Benutzerdaten einen Wert enthalten enter image description here

0
Razeem Ahmad