我创建了一个帮助器来获取未读消息的数量,我在几个刀片上调用该函数 - 菜单 - 个人资料菜单
那个助手做了一个db查询来获取该值,目前当我在配置文件之外时,我们只获得一个查询,但是当我在配置文件部分时,因为我们调用2次该函数我有2个查询,每次通话一个,当我在消息列表上时,我们拨打3次电话!
在这种情况下,最好的方法是什么?我尝试在互联网上搜索某种最佳做法,但我找不到任何东西。
提前致谢。 巴勃罗
编辑:
辅助功能
function unreadMessages()
{
$messages = App\Message::select(['*', DB::Raw("IFNULL( `thread_id` , `id` )")])
->where(function ($query) {
$query->where('receiver_id', Auth::user()->id)
->where('receiver_delete', false)
->where('receiver_read', false);
})->get()
->unique(DB::Raw("IFNULL( `thread_id` , `id` )"));
return count($messages);
}
然后我在不同的刀片上多次调用该功能