2017-06-26 5 views
0

こんにちは、私は最近、プログラムに基づいてcsvファイルから新しいユーザーを作成するためのいくつかのドキュメントに従ってきました。 Concrete5のdocs/apiによるとgetByID($ uID)というメソッドがありましたが、これ以降廃止予定です!私はそうのような新しいユーザーを作成していConcrete5バージョン8でプログラマチックにユーザーと属性を追加する

:私は、例えば既存の非コア属性に値を追加したい場合は

$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から来て、自動的にループして、対応する属性に空白か埋められているかにかかわらず正しい値を適用する必要があります。

答えて

1

メソッドは、新しいユーザーを追加した後に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

関連する問題