Где я могу вернуть уведомление или как я могу вернуть уведомление из моего кода? - PullRequest
0 голосов
/ 23 апреля 2019

Этот вопрос касается того, когда пользователь поднимается до уровня и когда его выравнивают, появляется всплывающее уведомление.

Контроллер:

  public function settleMatches(Request $request) {
    $validator = \Validator::make($request->all(), [
                'match_id' => 'required',
                'team_winner' => 'required'
    ]);

    if ($validator->passes()) {
        $match = \App\Match::find($request->match_id);
        if ($match->status != 'settled') {
            if (!in_array($request->team_winner, ['draw', 'cancelled']) && $match->type == 'main' && $match->subMatches()->activeMatches()->count())
                return ['error' => 'There are still active sub matches, Please settle them first!'];
            else {
                $total_circulating_credits = calculateCredits('total_circulating_credits');
                $match->team_winner = in_array($request->team_winner, ['draw', 'cancelled']) ? null : $request->team_winner;
                $match->status = in_array($request->team_winner, ['draw', 'cancelled']) ? $request->team_winner : 'settled';
                $match->save();
                foreach ($match->bets as $bet) {
                    $user = $bet->user;
                    if (in_array($request->team_winner, ['draw', 'cancelled'])) {
                        $user->credits += $bet->amount;
                        $user->level += 0;
                        $user->curr_exp += 0;
                        $user->prev_exp += 0;
                        $user->exp_needed += 0;
                        $user->reward_token += 0;
                        $bet->gains = 0;
                        $bet->exp_gained += 0;
                        $bet->save();
                        $user->save();
                    } else {
                        if ($bet->team_id == $match->team_winner) {
                            $gains = ($bet->amount * $bet->ratio);
                            $gainexp = $bet->amount;
                            $user->credits += $gains;
                            $user->curr_exp += $gainexp;
                            $bet->exp_gained += $gainexp;
                            $bet->gains = ($gains - $bet->amount);
                            $bet->save();
                            $user->save();
                        } else {
                            $gainexp = $bet->amount;
                            $user->curr_exp += $gainexp;
                            $bet->exp_gained += $gainexp;
                            $bet->gains = -($bet->amount);
                            $user->save();
                            $bet->save();
                        }
                        while($user->curr_exp >= $user->exp_needed){
                             if($user->level == 10 || $user->level == 15 || $user->level == 20)
                               {
                                  $user->reward_token += 1;
                               }
                                  $user->curr_exp -= $user->exp_needed;   
                                  $user->prev_exp = $user->exp_needed;
                               if($user->level <= 19){
                                   $user->exp_needed = $user->prev_exp * 1.4;
                               }
                               elseif($user->level >= 20 && $user->level <= 39){
                                   $user->exp_needed = $user->prev_exp * 1.1;
                               }
                               elseif($user->level >= 40 && $user->level <= 59){
                                   $user->exp_needed = $user->prev_exp * 1.05;
                               }
                               elseif($user->level >= 60 && $user->level <= 79){
                                   $user->exp_needed = $user->prev_exp * 1.04;
                               }
                               elseif($user->level >= 80 && $user->level <= 99){
                                   $user->exp_needed = $user->prev_exp * 1.03;
                               }
                               elseif($user->level == 100){
                                   $user->exp_needed = $user->exp_needed * 0;
                               }
                                   $user->level += 1;
                                   $user->save();
                               }
                        }
                }

                if ($request->team_winner == 'cancelled')
                    $this->cancelChildMatches($match);

                $this->saveMatchReport($match, $total_circulating_credits);
                return ['success' => 'done'];
            }
        } else
            return ['error' => 'Match was already settled, please refresh page!'];
    } else
        return ['error' => $validator->errors()];
}

Я просто запутался, как отображать живые уведомления в профиле пользователя каждый раз, когда они выравнивались. Есть идеи, как это работает? Я использую Laravel Framework версии 5.4.36.

1 Ответ

0 голосов
/ 23 апреля 2019

Когда какой-либо пользователь выровнялся, просто поставьте эту строку, прежде чем вернуться к просмотру

Session::flash("key", "Message you want to display");
return view('viewName');

для корректной работы над кодом вам нужно использовать это сверху

использовать сессию;

когда вы что-нибудь высвечиваете, вы можете получить это на следующем экране, который вы видите вот так

@if(Session::has('key'))
    {{ Session::get('key') }}
@endif

ИЛИ, если вы не работаете с view и делаете все с помощью API

вы можете вернуть любую пару ['key' => 'value'], когда вы получите этот ключ в ответе, отобразите это сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...