我正在使用Laravel 5.3.30并面临当前的问题。我试图到处搜索,并没有找到任何相关解决方案来满足我的需求。因此,请在将此标记为重复之前仔细阅读我的问题。只有在急速加载条件满足laravel ennial时才获取记录
表: [客户],[消息]
关系:客户有许多消息
我想要实现的是: 让所有的客户谁他最后的消息(contact_date)距离现在还不到一周。
我试了很多事情,包括以下内容:
Client::whereHas('messages', function($query){
$query->orderBy('contact_date', 'desc')
->whereDate('contact_date', '<', Carbon::now()->subDays(7));
})->get();
这是我现在告诉最好的选择,但它不能满足我的需求。
这将检查客户端的所有(contact_date),并将检索消息少于所需日期的任何客户端。
我的问题是: 我如何才能将这只适用于最新的[消息]记录?假设每个客户端都有100条消息,并且只想将其应用于最新消息。所以,如果消息条件不符合,查询将不会检索客户端。
一个GROUPBY由ACCOUNT_ID分组消息? –
@chasenyc你的意思是client_id,是的,尽管他的最后一条消息大于约束条件中设置的日期,但我还是试着让它仍然得到客户端,而不是因为客户端有其他消息少于那个日期。或者,也许我做错了,请你说明一下。 – ClearBoth