SOCIALENGINE4: установить или обновить поле пользователя

Как я могу добавить мужской пол всем пользователям, использующим SQL-запрос? Вот мой код, и я хочу включить поле мужского пола.

    $table = Engine_Api::_()->getDbtable('users', 'user');

$db = $table->getAdapter();
$db->beginTransaction();
try {
$user = $table->createRow();
$user->displayname = $displayname;
$user->save();

$id = $user->getIdentity();

$user->email = $firstName . $id . '@mail.com';
$user->username = $firstName . $id;
$user->enabled = 1;
$user->approved = 1;
$user->verified = 1;
$user->save();

$user->setPhoto($imagePath);

$userItem = $usersTable->createRow();
$userItem->item_id = $id;
$userItem->save();

$this->_activateSubscription($user);

$db->commit();

}

С уважением

0

Решение

Вам нужно создать строку в engine4_user_fields_values с идентификатором пользователя, мета-идентификатором поля и идентификатором опции поля. Вот идентификаторы, которые нам нужны:

Gender [field_id  : 5] in engine4_user_fields_meta

Male   [option_id : 2] in engine4_user_fields_options

Female [option_id : 3] in engine4_user_fields_options

Я написал женский и мужской варианты в следующем коде. Используйте один по мере необходимости и удалите другой.

$fieldsValuesTable = Engine_Api::_()->fields()->getTable('user', 'values');

$row = $fieldsValuesTable->createRow();
$row->item_id = $user->getIdentity();
$row->field_id = 5; //Gender
$row->value = 2; //Male
$row->value = 3; //Female
$row->save();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]