为什么我的忘记()方法不从集合中删除对象?



我有一个"票券"集合,使用random集合实用程序方法,我从列表中选择一个。"有关;集合现在应该删除(或忘记)随机选择的票据,以便我可以进一步处理该集合。使用forget方法似乎没有做文档或(更可能是我错过了什么)中描述的事情。

有人能指出我的代码有什么问题吗?

$tickets = Tickets::all();
$total_winners = 5;
$selected_tickets = $tickets->random($total_winners);
$jackpot_winner = $selected_tickets->random();
$selected_tickets->forget($jackpot_winner->id); // this line should remove the $jackpot_winner

当我在第3行和第5行打印$selected_tickets的内容时,它们有完全相同的项,包括$jackpot_winner

Forget函数使用集合键而不是模型的id。要达到您想要的效果,您可以使用以下方法:

$selected_tickets = $selected_tickets->except($jackpot_winner->id);

https://laravel.com/docs/8.x/collections法

相关内容

  • 没有找到相关文章

最新更新