我的网站收件箱页面有一个 Controller ,该 Controller 中有一个函数可以计算用户未读消息的数量。
public function updateUnreadCount() {
if (Auth::check()) {
$value = 0;
$messages = Message::where(function($query) {
return $query->where('recipient_id', Auth::user()->id)->where('reci_read', 0)
->orWhere('user_id', Auth::user()->id)->where('sender_read', 0);
});
foreach ($messages as &$value) {
++$value;
};
Auth::user()->update([
'unread_msg' => $value,
]);
};
}
我想知道的是,如何让这个函数对所有经过身份验证的用户全局触发,以便我可以在每个页面上显示未读消息的数量?
最佳答案
View composers are callbacks or class methods that are called when a view is rendered.
假设您的未读收件箱位于navbar.blade.php
。
// From the documentation, using Closure based composers...
View::composer('navbar', function ($view) {
if(Auth::user()) {
//logic here
}
});
关于php - Laravel Controller 功能全局应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39564905/