为什么我的 forget() 方法不从集合中删除对象?
Why does my forget() method not remove object from collection?
我有一组“票”,使用 random
收集实用程序方法我 select 从列表中选择了一张。 “门票”集合现在应该删除(或忘记)随机 selected 的门票,以便我可以进一步处理该集合。使用 forget
方法似乎无法执行 documentation 或(更有可能是我遗漏了一些东西)中描述的内容。
有人能发现我的代码有什么问题吗?
$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);
我有一组“票”,使用 random
收集实用程序方法我 select 从列表中选择了一张。 “门票”集合现在应该删除(或忘记)随机 selected 的门票,以便我可以进一步处理该集合。使用 forget
方法似乎无法执行 documentation 或(更有可能是我遗漏了一些东西)中描述的内容。
有人能发现我的代码有什么问题吗?
$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);