您好我最近关注了一些文档,以编程方式从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并自动循环以将正确的值应用于相应的属性,无论它是空白还是已填充。
答案 0 :(得分:1)
成功添加新用户后,create()
方法将返回UserInfo
对象(Concrete \ Core \ User \ UserInfo)。使用返回的UserInfo
对象,您可以使用setAttribute()
方法设置自定义用户属性。
确保首先创建了客户用户属性并在设置之前检查它是否可用,否则设置它将引发错误。我相信你可以使用Concrete\Core\Attribute\Key\UserKey::getByHandle('my_user_attribute')
来查看它是否返回一个对象。
create()方法位于RegistrationService类中: