Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
TemKa_SD

Return value of none returned

Recommended Posts

Здравствуйте. Почему не возвращает значения из \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();
   }

Share this post


Link to post

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

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

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

Share this post


Link to post

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

 

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

 

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

 

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

 

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

 

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

 

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

ScoredGame.php

Share this post


Link to post

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

 

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

Share this post


Link to post

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

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

Share this post


Link to post

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

 

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

Share this post


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

Share this post


Link to post

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

 

    /**
    * @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;
   }

Share this post


Link to post

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

Share this post


Link to post
/**

* @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;

 

}

Share this post


Link to post

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

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

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

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

 

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

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

и

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

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

Share this post


Link to post

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

 

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

 

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

       return $this;
   }

Edited by TemKa_SD

Share this post


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

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

Share this post


Link to post

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

Share this post


Link to post

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

Из-за

    protected $poolid;

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...