0

我想在我的应用程序中添加一个表单来生成考虑Liferay Users属性的规则。

您知道获取此属性列表的函数吗?(参数名称列表)

Example:
1. Address,
2. FullName,
3. AccountId,
4. Create Date,
5. Employee Numbre,
6. And so on.....

你知道获取每个参数类型的函数吗?(由于检查类型错误)

Example:
1. Address -> String
2. FullName -> String

谢谢你,奥里奥尔

4

3 回答 3

1

您可以通过调用获取用户对象:

User u = userService.getUserById(0);

或查看Liferay 文档以获取 UserService

那么你可以使用像这样的吸气剂:

u.getAddresses();
u.getBirthday();
u.getFullName();
于 2013-06-25T09:32:58.957 回答
1

AFAIK,没有这样的方法。但即使它存在,它也不会提供您要查找的所有信息,因为其中一些信息不是用户类的属性,也不是 LF 数据库中相应的“user_”表。

如果您了解 ServiceBuilder 模型的工作原理,您会发现有一个复杂的模型在后台运行,它的工作方式与属性不同。

例如,没有'user.getAddress()'。因为,Address 是一个复杂类,是Contact 的子类,并为用户保留一个FK。如果您想要他的地址之一,您只能获取他的所有地址 (User.getAddresses()),并遍历它们,通过 ContantactType 检查并获取他的“营业地址”。恕我直言,您不能调用“user.setAddress(String)”,甚至不能调用“user.addAddress(Address)”。工作代码看起来更像:

             //update an existing Address
                existingAddr.setStreet1(street);
                existingAddr.setZip(zip);
                existingAddr.setCity(city);
                AddressLocalServiceUtil.updateAddress(existingAddr);            

                    //then update the user, to store the changes.
        UserLocalServiceUtil.updateUser(user);

生日、电话、网站和 Facebook 网址等也是如此

对于其余的“属性”(名称和类型),您应该看这里

于 2013-06-25T13:00:56.033 回答
-1

你可以从:

User user = UserLocalServiceUtil.getUser(userId); 

user.getFullName(); user.getEmailAddress();

于 2013-07-01T09:16:07.640 回答