• Данный материал предоставлен сайтом исключительно в ознакомительных целях.
    Администрация не несет ответственности за его содержимое. По всем жалобам пишите на почту abusevhguru@yandex.ru

Помогите пожалуйста знатоки PHP

DanKor

Опытный
Сообщения
244
Реакции
52

DanKor

  • 244
  • 52
Код:
    public function newBet(){
    if ($this->user->skins == 1){
        $data = $this->redis->lrange('bets.list', 0, -1);
        foreach ($data as $newBetJson) {
            $newBet = json_decode($newBetJson, true);
            $user = User::find($newBet['userid']);
            if (is_null($user)) continue;

            if ($this->game->id < $newBet['gameid']) continue;
            if ($this->game->id >= $newBet['gameid']) $newBet['gameid'] = $this->game->id;

            if ($this->game->status == Game::STATUS_PRE_FINISH || $this->game->status == Game::STATUS_FINISHED) {
                $this->_responseMessageToSite('Ваша ставка пойдёт на следующую игру.', $user->steamid64);
                $this->redis->lrem('bets.list', 0, $newBetJson);
                $newBet['gameid'] = $newBet['gameid'] + 1;
                $this->redis->rpush('bets.list', json_encode($newBet));
                continue;
            }
            $ticketFrom = $this->lastTicket + 1;

            $ticketTo = $ticketFrom + ($newBet['price'] * self::TICKETS_RATE) - 1;
            $this->redis->set('last.ticket', $ticketTo);

            $bet = new Bet();
            $bet->user()->associate($user);
            $bet->items = json_encode($newBet['items']);
            $bet->itemsCount = count($newBet['items']);
            $bet->price = $newBet['price'];
            $bet->from = $ticketFrom;
            $bet->to = $ticketTo;
            $bet->game()->associate($this->game);
            $bet->save();

            $bets = Bet::where('game_id', $this->game->id);
            $this->game->items = $bets->sum('itemsCount');
            $this->game->price = $bets->sum('price');

            if (count($this->game->users()) >= 2 || $this->game->items >= 100) {
                $this->game->status = Game::STATUS_PLAYING;
                $this->game->started_at = Carbon::now();
            }

            if ($this->game->items >= 100) {
                $this->game->status = Game::STATUS_FINISHED;
                $this->redis->publish(self::SHOW_WINNERS, true);
            }

            $this->game->save();

            $chances = $this->_getChancesOfGame($this->game);
            $returnValue = [
                'betId' => $bet->id,
                'userId' => $user->steam64,
                'html' => view('includes.bet', compact('bet'))->render(),
                'itemsCount' => $this->game->items,
                'gamePrice' => $this->game->price,
                'gameStatus' => $this->game->status,
                'chances' => $chances
            ];
            $this->redis->publish(self::NEW_BET_CHANNEL, json_encode($returnValue));
            $this->redis->lrem('bets.list', 0, $newBetJson);
        }
        return $this->_responseSuccess();
    }
    else if ($this->user->skins == 0){
$data = $this->redis->lrange('bets.list', 0, -1);
foreach($data as $newBetJson) {
$newBet = json_decode($newBetJson, true);





$user = User::find($newBet['userid']);



if(is_null($user)) continue;
$user->money = $user->money + $newBet['price'];
$user->save();


$this->redis->lrem('bets.list', 0, $newBetJson);

}

return $this->_responseSuccess();
}
}
что здесь не так :( в бд была создана строка skins с параметрами Int(1)
 
Последнее редактирование:

StringNick

Пользователь
Сообщения
29
Реакции
2

StringNick

  • 29
  • 2
Здесь никак тебе не помогут, выведи var_dump($this->user),
напиши текст ошибки
 

Karlson

Новичок
Сообщения
0
Реакции
-9

Karlson

  • 0
  • -9
Обратите внимание, пользователь заблокирован. Крайне не рекомендуем заключать сделки с этим пользователем,

ToXaHo

Заблокирован
Сообщения
589
Реакции
420

ToXaHo

  • 589
  • 420
Ты уверен что человек, который вносит залогинен?
 

Karlson

Новичок
Сообщения
0
Реакции
-9

Karlson

  • 0
  • -9
Обратите внимание, пользователь заблокирован. Крайне не рекомендуем заключать сделки с этим пользователем,

ToXaHo

Заблокирован
Сообщения
589
Реакции
420

ToXaHo

  • 589
  • 420
Помоему это часть кода от API ну по крайней мере по логике строения , если конечно это джекпот сайт
В ларе там $this->user это залогиненный юзер, если он не залогинен, скрипт не сможет узнать $this->user
 

iBrooks

Пользователь
Сообщения
76
Реакции
5

iBrooks

  • 76
  • 5
А ты в модели указал что это поле редактируемое?) protected $fillable = ['skins'];
И кстати да, == 1, что за дичь?

else if ($this->user->skins == 0){ - а что, там могут быть какие то еще исходы?
 

DanKor

Опытный
Сообщения
244
Реакции
52

DanKor

  • 244
  • 52
Крч надо переменную $user написать что-бы она брала значение skins может кто нить :(?
$user = User::find(['skins']); что-то вроде такого (
 

iBrooks

Пользователь
Сообщения
76
Реакции
5

iBrooks

  • 76
  • 5
Крч надо переменную $user написать что-бы она брала значение skins может кто нить :(?
$user = User::find(['skins']); что-то вроде такого (
У тебя же там строчка есть
$user = User::find($newBet['userid']);
Что бы из нее получить значение skins => $user -> skins
 
Сверху