Jump to content
Дизайн и модификация Invision Power Board 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
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

 

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

 

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

ScoredGame.php

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

    /**
    * @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 on other sites

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

Share this post


Link to post
Share on other sites
/**

* @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
Share on other sites

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

$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
Share on other sites

Хорошо, вот такой код почему возвращает 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
Share on other sites
Хорошо, вот такой код почему возвращает null?

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Из-за

    protected $poolid;

Share this post


Link to post
Share on other sites

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...