我有一个表,我想在其中显示集合中的数据以及多组关系的计数。 我想使用 Laravel withcount 方式,这样我就不会加载太多模型。查询如下所示: 公司::withCount('交易');
查询工作正常并将 transactions_count 添加到集合中。
在第一个渲染中,它也显示在 deblade 中。但是,当 Livewire 进行往返时,字段/数据就会丢失。我猜它没有从 Livewire 发送到后端。当然,我可以加载所有模型并在 php 中对它们进行计数,但我宁愿不这样做。
我该怎么做才能不丢失这个附加字段?
我找到了一个解决方案,也许它不是完美的,但我想应该没问题。
您可以将
protected $withCount = ['relation']
添加到您的模型中,使用此 Livewire 实际上会一直保存计数属性。
如果您想出了不同的解决方案,请告诉我。
任何像我一样遇到这个问题的人 - 在 livewire github 上有一个关于这个主题的讨论
https://github.com/livewire/livewire/discussions/2950
hydrate()
方法和 laravel loadCount()
似乎可以解决问题