Загрузка...

Помогите решить

Тема в разделе Backend создана пользователем First 15 дек 2021. 251 просмотр

  1. First
    First Автор темы 15 дек 2021 Белый или чёрный? 10 290 5 авг 2018
    $user = User::updateOrCreate(
    [
    'id' => $userData -> id,
    ],
    [
    'username' => $userData -> username,
    'discriminator' => $userData -> discriminator,
    'avatar' => $userData -> avatar,
    'locale' => $userData -> locale,
    'mfa_enabled' => $userData -> mfa_enabled,
    'refresh_token' => $accessTokenData -> refresh_token
    ]
    );

    foreach ($guildData->json() as $guild) {
    unset($guild['owner']);
    $guild = Guild::updateOrCreate(
    [
    'id' => $guild['id'],
    ],
    [
    'name' => $guild['name'],
    'icon' => $guild['icon'],
    'permissions' => $guild['permissions'] & 0X8 ,
    'permissions_new' => $guild['permissions_new'],

    ],
    );
    Guild::where('permissions', '=', 0)->delete();

    }

    $userGuild = UserGuild::updateOrCreate(
    [
    'user_id' => $user['id'],
    'guild_id' => $guild['id']
    ]
    );
    dd($userGuild);

    И на выходе я получаю удаленный id. А мне нужно тот который остался после удаления, с permissions равным 8
    То есть я удаляю строки permissions который равны 0. Остаются те которые после битовой операции равны 8. И id $guild и $user сохраняю в новую таблицу.
     
  2. eVilMILK_inactive47231
    Я не сильно понял что у тебя с премишинами творится , но по идее в перемнной
    $guild
    будет последнее значения из foreach ( которое не зависит удалил ты созаднную запись или нет).Думаю , стоит попробовать перед созданием сразу проеверить пермишины и если они подходят , то только тогда использовать updateOrCreate
     
    1. First Автор темы
  3. Twenix
    Twenix 15 дек 2021 2 24 июл 2019
    if($guild->permissions & 0X8)
    {
    UserGuild::updateOrCreate(
    [
    'user_id' => $user['id'],
    'guild_id' => $guild['id']
    ]
    );
    }
     
Top
Загрузка...