Php 更新集合中的对象
我正在使用一个集合类来存储“players”的对象。现在在我的下注课上,我想更新其中一个玩家的积分。。但我想我只是在我的收藏中更新了一次。我不太确定如何与全局集合对象通信。这是我的密码 Index.php我正在创建一个新的PlayerCollection并将其传递给我的解析器类Php 更新集合中的对象,php,class,oop,Php,Class,Oop,我正在使用一个集合类来存储“players”的对象。现在在我的下注课上,我想更新其中一个玩家的积分。。但我想我只是在我的收藏中更新了一次。我不太确定如何与全局集合对象通信。这是我的密码 Index.php我正在创建一个新的PlayerCollection并将其传递给我的解析器类 $app->get('/', function () use ($twig) { try { $players = new PlayerCollection(); $mat
$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
]);
});
解析器类我正在接受构造函数中的PlayerCollection,并使用以下代码在Bet类中设置Player对象
测试了this->players->find()功能,并从集合中返回正确的对象
打赌类
class Bet {
private $player;
private $teamHome;
private $teamAway;
private $scoreHome;
private $scoreAway;
public function getPoints($scoreHome, $scoreAway)
{
if($scoreHome == $scoreAway ) {
$this->player->setPoints(100);
}
}
}
我调用函数来计算我的小树枝模板中的分数
{{ bet.getPoints(match.getHomeScore(), match.getAwayScore()) }}
当我在我的打赌课上呼出玩家的分数时,它起作用了。。但是我的PlayerCollection在index.php页面上没有更新
它可能是我的模板?我要更新的值已经由twig放置,只是在稍后的模板中,我调用该方法来更新先前但已放置的变量
知道我做错了什么吗?谢谢大家! 创建新的
Bet()
对象时,您将一个玩家对象的现有实例复制到了Bet对象中,因此不会更改原始对象
以前在这里的代码没有意义,哦谢谢你的回答,解析器实际上解析了不同的内容,然后是播放器。还有其他方法吗?看,您的Bet类中的player属性是PlayerCollection对象中的player的副本您只是在Bet类中向该玩家添加点数。这对Parser object中的实际player对象没有影响。我应该在点数增加后用新的player更新原始集合吗?这缺少了一些东西。我试过这个,它似乎像预期的那样工作。不管怎样,理论上来说。谢谢你的时间,也许索引会覆盖新创建的索引,我会添加代码。我更新了index.php代码,你可以看到我将$players传递到我的小树枝视图。。也许这不是我的正确行为?
{{ bet.getPoints(match.getHomeScore(), match.getAwayScore()) }}