是否可以在Liferay中的“创建用户”下添加额外字段

是否可以在Liferay中的“创建用户”下添加额外字段,liferay,liferay-6,Liferay,Liferay 6,我正在使用Liferay 6进行门户开发。 在Liferay下创建用户时,我还需要添加一些额外的字段?? 请让我知道这是否可行 请看附在这里的屏幕截图,也请让我知道这将存储在数据库中的哪个表 是的,您可以将自定义字段添加到用户实体,并将字段值添加到用户: user.getExpandoBridge().addAttribute(...); 用户实体的Custim字段,您可以通过控制面板Portal->Custom Fields或在liferay启动时通过programmaticaly创建 数据

我正在使用Liferay 6进行门户开发。 在Liferay下创建用户时,我还需要添加一些额外的字段?? 请让我知道这是否可行

请看附在这里的屏幕截图,也请让我知道这将存储在数据库中的哪个表


是的,您可以将自定义字段添加到用户实体,并将字段值添加到用户:

user.getExpandoBridge().addAttribute(...);
用户实体的Custim字段,您可以通过控制面板
Portal->Custom Fields
或在liferay启动时通过programmaticaly创建

数据将存储在
ExpandoValue
表格中。

是的,您可以将其用于liferay实体(在您的情况下为用户),并可以根据需要为每个liferay实体添加任意多的额外字段

用户实体的自定义字段可以通过以下方式创建:
控制面板
->
门户
->
自定义字段
->
用户

可以按如下方式以编程方式创建和:

user.getExpandoBridge().addAttribute("yourCustomFieldKey");
然后将该值设置为:

user.getExpandoBridge().setAttribute("yourCustomFieldKey", "valueForCustomField");
如果您的自定义字段已经存在,您可以这样检查:

if (user.getExpandoBridge().hasAttribute("yourCustomFieldKey")) { ... };
数据存储在前缀为“EXPANDO”的表格中:

  • EXPANDOCOLUMN:存储自定义字段键和其他设置 (包含tableId引用)
  • EXPANDODATA:存储键的自定义字段值(包含 columnId和tableId引用)
  • 可扩展:要为其添加liferay实体(用户)的存储 自定义字段
  • EXPANDOROW:存储用户与其值之间的链接信息 (包含tableId和userId引用)

希望这有帮助。

可以自定义liferay中的用户创建页面。实际上,您可以决定在用户创建页面中显示哪些字段

为了防止有人试图从自定义字段中检索值,并且在方法
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()


不太漂亮,但请执行此操作。

如果在添加或设置属性时遇到权限问题,请使用以下命令

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