【问题标题】:How to create and save user profile fields in Drupal 8?如何在 Drupal 8 中创建和保存用户配置文件字段?
【发布时间】:2018-07-11 12:39:58
【问题描述】:

我想通过创建 field_first_name 添加设置的用户配置文件数据,例如 field_profile_first_name 而不是用户帐户,我可以在用户帐户中设置字段数据,如下所示,我该如何为配置文件做同样的事情。

 $account = [
        'name' => $user_data->employee_code,
        'pass' => 'password',
        'mail' => $user_data->employee_mail_id,
        'init' => $user_data->employee_mail_id,
        'preferred_admin_langcode' => 'en',
        'timezone' => drupal_get_user_timezone(),
      ];

      $user = User::create($account);
      if (isset($user_data->first_name) && !empty($user_data->first_name)) {
        $user->set("field_first_name", $user_data->first_name);
      }

      if (isset($user_data->last_name) && !empty($user_data->last_name)) {
        $user->set("field_last_name", $user_data->last_name);
      }

      $user->save();

【问题讨论】:

    标签: drupal-8


    【解决方案1】:

    首先,创建一个用户,然后创建与其关联的个人资料。比如下面的代码:

      use Drupal\profile\Entity\Profile;
      use Drupal\user\Entity\User;
    
      $user = User::create();
    
      // Mandatory.
      $user->setPassword();
      $user->enforceIsNew();
      $user->setEmail($email);
      $user->setUsername($email);
    
      // Optional.
      $user->set('init', $email);
      $user->set('langcode', $lang);
      $user->set('preferred_langcode', $lang);
      $user->set('preferred_admin_langcode', $lang);
      $user->activate();
    
      // Save user account.
      $user->save();
    
      $profile = Profile::create([
        'type' => 'customer',
        'uid' => $user->id(),
        'field_agree_terms' => 1,
        'field_first_name' => $first_name,
        'field_last_name' => $last_name,
      ]);
    
      $profile->setDefault(TRUE);
      $profile->save();
    

    【讨论】:

    • 只是对此的一个小修改:配置文件的 uid 字段不应设置为 1 - 它应设置为刚刚创建的用户 ID。例如:'uid' => $user->id(),
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多