【问题标题】:Adding users and attributes programatically in Concrete5 version 8在 Concrete5 版本 8 中以编程方式添加用户和属性
【发布时间】:2017-06-27 21:22:43
【问题描述】:

您好,我最近关注了一些文档,以编程方式从 csv 文件创建新用户。根据 Concrete5 docs/api,有一个名为 getByID( $uID ) 的方法,但此后已被弃用!

我正在像这样创建一个新用户:

$userRegistration = Core::make('user/registration');

$file = fopen("test-users.csv","r");
while (($data = fgetcsv($file)) !== FALSE) {
echo "email address " . $data[0];
$userRegistration->create([
'uName' => $data[0],
'uPassword' => $data[1],
'uEmail' => $data[2],
'uIsValidated' => true,
]);
}

但是,如果我想为现有的非核心属性添加一个值,例如让我们将其称为 user_county,那么在以编程方式添加用户后我将如何更改它?我可能还需要对多个用户属性执行此操作,因此值需要来自 CSV 并自动循环以将正确的值应用于相应的属性,无论它是空白还是填充。

【问题讨论】:

    标签: concrete5 concrete5-8.x


    【解决方案1】:

    成功添加新用户后,create() 方法将返回一个UserInfo 对象(Concrete\Core\User\UserInfo)。使用返回的UserInfo 对象,您可以使用setAttribute() 方法设置您的自定义用户属性。

    请确保您已经创建了客户用户属性,并在设置之前检查它是否可用,否则设置它会抛出错误。我相信您可以使用Concrete\Core\Attribute\Key\UserKey::getByHandle('my_user_attribute') 执行此操作并查看它是否返回一个对象。

    create() 方法在 RegistrationService 类中:

    https://github.com/concrete5/concrete5/blob/develop/concrete/src/User/RegistrationService.php#L51-L140

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多