Вопрос по – Можно ли добавить дополнительные поля под Create User в Liferay

9

Я использую Liferay 6 для разработки портала. Во время создания пользователей под Liferay мне нужно также добавить несколько дополнительных полей ?? Пожалуйста, дайте мне знать, если это возможно или нет ??

Пожалуйста, посмотрите скриншот, приложенный здесь, а также, пожалуйста, дайте мне знать, в какой таблице это будет храниться в базе данных ??

enter image description here

Ваш Ответ

5   ответов
0

если у вас возникли проблемы с разрешением при добавлении или настройке атрибута.

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

если кто-то попытается получить значения из настраиваемых полей, и возникнут проблемы с нулевыми значениями, возвращаемыми методом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();

Не так красиво, но делай работу.

12

Функциональность пользовательских атрибутов  для сущностей liferay (в вашем случае, User) и может добавить столько дополнительных полей, сколько необходимо для каждой сущности liferay.

Настраиваемое поле для пользовательского объекта может быть создано через:
Control Panel -> Portal -> Custom Fields -> User.

И программно может быть создан следующим образом:

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

Затем установите значение как:

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

Если ваше настраиваемое поле уже присутствует, вы можете проверить это так:

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

Данные хранятся в таблицах с префиксом"EXPANDO":

EXPANDOCOLUMN: stores the custom field key and other settings (contains the tableId refrences) EXPANDODATA: stores the custom field value for the key (contains the columnId and tableId refrences) EXPANDOTABLE: stores for which liferay entity (user) are you adding the custom field EXPANDOROW: stores linking information between a user and its values (contains tableId and userId refrences)

Надеюсь это поможет.

Error: User Rate Limit Exceeded
3

вы можете добавить пользовательские поля в user-entity и добавить их значения полей для пользователя:

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

Поле Custim для пользовательской сущности, которую вы можете созть с помощью панели управленияPortal->Custom Fields или программно при запуске liferay.

Данные будут храниться вExpandoValue столы.

0

шить, какие поля будут присутствовать на странице создания пользователя.Подробнее об этом здесь.

Похожие вопросы