我正在使用Collection类来存储“玩家”的对象。现在在我的Bet课程中,我想更新其中一个玩家的积分..但我想我只是在我的收藏的一次实例中更新它。我不太确定如何与全局集合对象交谈。这是我的代码
Index.php 我正在创建一个新的PlayerCollection并将其传递给我的Parser类
$app->get('/', function () use ($twig) {
try {
$players = new PlayerCollection();
$matchParser = new MatchParser($players);
$matches = new MatchCollection($matchParser->parse('../data/data.json'));
} catch(JsonException $e) {
die($e->getMessage());
}
echo $twig->render('home.html', [
'matches' => $matches->all(),
'players' => $players
]);
});
Parser Class 我在构造函数中接受了PlayerCollection,并使用以下代码在Bet类中设置了Player对象。
测试this-> players-> find()功能,并从集合中返回正确的对象
$bet = new Bet();
$bet->setPlayer($this->players->find($name));
投注类
class Bet {
private $player;
private $teamHome;
private $teamAway;
private $scoreHome;
private $scoreAway;
public function getPoints($scoreHome, $scoreAway)
{
if($scoreHome == $scoreAway ) {
$this->player->setPoints(100);
}
}
}
我调用函数来计算我的Twig模板中的分数
{{ bet.getPoints(match.getHomeScore(), match.getAwayScore()) }}
当我在我的下注类中回应玩家的分数时,它正在工作..但我的PlayerCollection在我的index.php页面上没有更新。
知道我可能做错了什么吗?谢谢!
答案 0 :(得分:-1)
当您创建新的Bet()
对象时,您将其中一个玩家对象的现有实例复制到Bet对象中,因此不会更改原始对象。
代码没有意义,oops