10

ポータル開発に Liferay 6 を使用しています。Liferay でユーザーを作成する際に、追加のフィールドも追加する必要があります?? これが可能かどうか教えてください??

ここに添付されているスクリーン ショットを参照してください。また、これがデータベースに格納されるテーブルを教えてください。

ここに画像の説明を入力

4

5 に答える 5

13

はい、 liferay エンティティ (この場合はユーザー) にカスタム属性機能 を使用でき、liferay エンティティごとに必要な数の追加フィールドを追加できます。

ユーザー エンティティのカスタム フィールドは、次の方法で作成できます
Control Panel -> Portal -> Custom Fields -> User

また、プログラムで次のように作成できます。

user.getExpandoBridge().addAttribute("yourCustomFieldKey");

次に、値を次のように設定します。

user.getExpandoBridge().setAttribute("yourCustomFieldKey", "valueForCustomField");

カスタム フィールドが既に存在する場合は、次のように確認できます。

if (user.getExpandoBridge().hasAttribute("yourCustomFieldKey")) { ... };

データは、「EXPANDO」で始まるテーブルに保存されます。

  • EXPANDOCOLUMN:カスタム フィールドのキーとその他の設定を格納します (tableId 参照が含まれます)。
  • EXPANDODATA:キーのカスタム フィールド値を格納します (columnId および tableId 参照が含まれます)。
  • 拡張可能:カスタム フィールドを追加する liferay エンティティ (ユーザー) のストア
  • EXPANDOROW:ユーザーとその値の間のリンク情報を格納します (tableId および userId 参照を含む)

お役に立てれば。

于 2012-04-16T08:58:50.523 に答える
3

はい、カスタム フィールドをユーザー エンティティに追加し、フィールド値をユーザーに追加できます。

user.getExpandoBridge().addAttribute(...);

Portal->Custom Fieldsコントロールパネルまたはliferayの開始時にプログラムで作成できるユーザーエンティティのカスタムフィールド。

データはExpandoValueテーブルに格納されます。

于 2012-04-13T08:33:56.463 に答える
3

誰かがカスタム フィールドから値を取得しようとして、メソッドによって返される null 値に問題がある場合に備えてuser.getExpandoBridge().getAttribute("yourCustomFieldKey")(アクセス許可に関するスレッドに従っている場合でも)、カスタム フィールドの値を取得する別の方法を見つけました。

ExpandoTable table = ExpandoTableLocalServiceUtil.getDefaultTable(user.getCompanyId(), User.class.getName() );
ExpandoColumn column = ExpandoColumnLocalServiceUtil.getColumn(table.getTableId(), "yourCustomFieldKey");
ExpandoValue expandoValue = ExpandoValueLocalServiceUtil.getValue(table.getTableId(), column.getColumnId(), user.getUserId());

次に、簡単なことを行うことができます(フィールドがテキストの場合)expandoValue.getString();

あまりきれいではありませんが、仕事をしてください。

于 2013-03-14T08:19:36.263 に答える
0

属性の追加または設定で権限の問題が発生した場合は、次のコマンドを使用します。

user.getExpandoBridge().addAttribute("yourCustomFieldKey",false);
user.getExpandoBridge().setAttribute("yourCustomFieldKey", "valueForCustomField",false);
于 2014-07-10T08:34:40.587 に答える
0

liferay のユーザー作成ページをカスタマイズできます。実際、ユーザー作成ページに表示するフィールドを決定できます。詳細については、こちらをご覧ください。

于 2012-04-21T10:36:11.347 に答える