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();

    }

С Уважением


person aljassmy    schedule 07.01.2016    source источник


Ответы (1)


Вам нужно создать строку в 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();
person Ali Mousavi    schedule 11.01.2016
comment
большое спасибо, есть еще вопрос, если не возражаете. а как же Страна. - person aljassmy; 13.01.2016
comment
Вы можете просмотреть таблицу engine4_user_fields_meta, чтобы найти идентификатор страны. Если ответ был полезен, пожалуйста, отметьте его как правильный ответ. - person Ali Mousavi; 16.01.2016