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