【发布时间】:2022-11-10 23:35:30
【问题描述】:
我通过一个雄辩的集合循环,我想将数据添加到另一个名为“$tagCollection”的集合中。如果已经存在具有相同 tag_id 的条目,我只想增加现有条目的评级列。 目前它看起来像这样。有人有想法吗?
$tagCollection = collect();
$entries->each(function($entry) use($tagCollection){
$tagId = $entry->tag_id;
//something like this
if($tagCollection->contains('tag_id', $tagId)){
$tagCollection->update ('rating' => $oldRating + 0.5)
} else{
$tagCollection->push(array(
'tag_id' => $tagId,
'rating' => 0.35
));
}
});
我还尝试使用 ->pull() 将项目从集合中删除,然后使用新评级再次推送它,但我也不知道如何
【问题讨论】:
-
我不明白,你想给特定的入门评分加 0.5 吗?或者也将其余部分的评级值强制为 0.35。
-
@N69S 是的,对不起。在我的示例中,0.35 是基值。在下一次运行中,我检查是否存在具有相同 tag_id 的条目。如果是,则修改此条目并将 0.5(这也是一个示例值)添加到此条目的现有评级
标签: laravel eloquent laravel-collection