Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Return value of none returned

Опубликовано:

Здравствуйте. Почему не возвращает значения из \IPS\sharedstats\Records\ScoredGame?

 

    /**
    * @param array $game
    * @param string $type
    * @return StatsGamesScored
    */
   protected function createGameEntity(array $game, $type): \IPS\sharedstats\Records\ScoredGame {
       $scoredGame = new \IPS\sharedstats\Records\ScoredGame();
       #$scoredGame->gameid = $game['id'];
       $scoredGame->setGameid($game['id']);
       $scoredGame->setGamename($game['gamename']);
       $scoredGame->setDuration($game['duration']);
       $scoredGame->setUuid($game['uuid']);
       $scoredGame->setMap($game['map']);
       $scoredGame->setSaved(new \DateTime($game['datetime']));
       $scoredGame->setScored(new \DateTime());
       $scoredGame->setType($type);
       #$scoredGame->setTeam1win(50.00);
       #$scoredGame->setTeam2win(50.00);
       $scoredGame->setLobbyChats(json_encode([]));
       $scoredGame->setGameChats(json_encode([]));
       $scoredGame->setPlayerawards(json_encode([]));
       $scoredGame->setWinner(0);

       $scoredGame->save();
   }

Рекомендованные сообщения

Опубликовано:

protected function createGameEntity(array $game, $type): \IPS\sharedstats\Records\ScoredGame {

Вы указали, что должен вернуться объект класса \IPS\sharedstats\Records\ScoredGame, но ничего не возвращаете.

       $scoredGame->save();
      return $scoredGame;

Опубликовано:
  • Автор

Вы указали, что должен вернуться объект класса \IPS\sharedstats\Records\ScoredGame, но ничего не возвращаете.

 

Значит это не то. Я во всём разобрался, у меня всё отлично работает, данные собираются между функциями, сохраняются - всё отлично.

 

Т.е если взять вот эту строку:

 

$scoredGame->setGameid($game['id']);

 

Работать не будет, функция не работает, она в прикрепленном файле. Если использовать значение передаваемое в таске между функциями то всё работает отлично:

 

$scoredGame->gameid = $game['id'];

 

Этот весь функционал с другого движка, на котором всё работало, помогите разобраться с функциями в файле ScoredGame, почему не возвращает нужные значения. Т.е если в функции прописать return 1; то вернет всё как надо, не работают именно переменные почему-то.

ScoredGame.php

Опубликовано:

Что именно не работает?

 

.е если в функции прописать return 1; то вернет всё как надо, не работают именно переменные почему-то
Где прописать?
Опубликовано:
  • Автор

Вот на скрине, если вернуть просто 1 то оно вернет, а через this не работает почему-то.

post-60255-0-90280400-1535530966_thumb.png

Опубликовано:

А дальше? Где Вы эту единицу используете?

 

В каком конкретно месте происходит не то, что ожидаете?

Опубликовано:
  • Автор
$scoredGame->setGameid($game['id']);

Опубликовано:
  • Автор

Еще раз попробую объяснить.

 

    /**
    * @param array $game
    * @param string $type
    * @return StatsGamesScored
    */
   protected function createGameEntity($game, $type): StatsGamesScored {
       $scoredGame = new StatsGamesScored();
       #$scoredGame->gameid = $game['id'];
       $scoredGame->setGameid($game['id']);
       $scoredGame->setGamename($game['gamename']);
       $scoredGame->setDuration($game['duration']);
       $scoredGame->setUuid($game['uuid']);
       $scoredGame->setMap($game['map']);
       $scoredGame->setSaved(new \DateTime($game['datetime']));
       $scoredGame->setScored(new \DateTime());
       $scoredGame->setType($type);
       #$scoredGame->setTeam1win(50.00);
       #$scoredGame->setTeam2win(50.00);
       $scoredGame->setLobbyChats(json_encode([]));
       $scoredGame->setGameChats(json_encode([]));
       $scoredGame->setPlayerawards(json_encode([]));
       $scoredGame->setWinner(0);

       $scoredGame->save();

       return $scoredGame;

   }

 

Вот в этом коде возвращаем значения из файла - функций (StatsGamesScored)

$scoredGame->setGameid($game['id']);

 

Я пробую сейчас вернуть просто двойку, оно не возвращает, почему?

 

    /**
    * Set gameid
    *
    * @param integer $gameid
    *
    * @return StatsGamesScored
    */
   public function setGameid($gameid)
   {
       return 2;
   }

Опубликовано:

Покажите, где Вы пытаетесь получить двойку

Опубликовано:
  • Автор
/**

* @param array $game

* @param string $type

* @return StatsGamesScored

*/

protected function createGameEntity($game, $type): StatsGamesScored {

$scoredGame = new StatsGamesScored();

#$scoredGame->gameid = $game['id'];

$scoredGame->setGameid($game['id']);

$scoredGame->setGamename($game['gamename']);

$scoredGame->setDuration($game['duration']);

$scoredGame->setUuid($game['uuid']);

$scoredGame->setMap($game['map']);

$scoredGame->setSaved(new \DateTime($game['datetime']));

$scoredGame->setScored(new \DateTime());

$scoredGame->setType($type);

#$scoredGame->setTeam1win(50.00);

#$scoredGame->setTeam2win(50.00);

$scoredGame->setLobbyChats(json_encode([]));

$scoredGame->setGameChats(json_encode([]));

$scoredGame->setPlayerawards(json_encode([]));

$scoredGame->setWinner(0);

 

$scoredGame->save();

 

return $scoredGame;

 

}

Опубликовано:

Этот код чуть ли не в каждом посте.

$scoredGame->setGameid($game['id']);

Здесь идет присваивание $scoredGame->gameid = $game['id'];

Где Вы хотите получить двойку, не понятно.

 

Чтобы получить двойку

    public function setGameid($gameid)
   {
       return 2;
   }

и

$two = $scoredGame->setGameid($game['id']);

Тогда значение переменной $two будет 2

Опубликовано:
  • Автор

Хорошо, вот такой код почему возвращает null?

 

$scoredGame->setGameid($game['id']);

 

    /**
    * Set gameid
    *
    * @param integer $gameid
    *
    * @return StatsGamesScored
    */
   public function setGameid($gameid)
   {
       $this->gameid = $gameid;

       return $this;
   }

Изменено пользователем TemKa_SD

Опубликовано:
Хорошо, вот такой код почему возвращает null?

Как Вы определяете, что NULL?

Опубликовано:
  • Автор

В БД идет стандартное значение "0" при сохранении $scoredGame->save();.

Опубликовано:

В БД идет стандартное значение "0" при сохранении $scoredGame->save();.

Из-за

    protected $poolid;

Опубликовано:
  • Автор

Понял, из-за

 

    /**
    * @var integer
    */
   protected $gameid;

 

Так и что? у всех переменных убирать это?

Изменено пользователем TemKa_SD

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.