Я создаю помощника для подсчета непрочитанных сообщений и вызываю эту функцию на нескольких блейдах.
— Меню
— Меню профиля
Этот помощник сделал запрос базы данных, чтобы получить это значение, в настоящее время, когда я нахожусь вне профиля, мы получаем только один запрос, но когда я нахожусь в разделе профиля, так как мы вызываем 2 раза эту функцию, у меня есть 2 запроса, один для каждый звонок, И когда я нахожусь в списке сообщений, мы звоним 3 раза!
Как лучше всего поступить в такой ситуации? Я пытаюсь найти в интернете какие-то лучшие практики, но ничего не нашел.
Заранее спасибо.
Pablo
РЕДАКТИРОВАТЬ:
Вспомогательная функция
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);
}
Затем я вызываю эту функцию пару раз на разных блейдах
Задача ещё не решена.
Других решений пока нет …