SOCIALENGINE4:设置或更新用户的性别字段

SOCIALENGINE4: set or update gender field of the users

如何使用 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();

    }

问候

您需要使用用户 ID、字段元 ID 和字段选项 ID 在 engine4_user_fields_values 中创建一行。这是我们需要的 ID:

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