Flarum\Core\Repository\NotificationRepository::findByUser PHP Method

findByUser() public method

Find a user's notifications.
public findByUser ( User $user, integer | null $limit = null, integer $offset ) : Illuminate\Database\Eloquent\Collection
$user Flarum\Core\User
$limit integer | null
$offset integer
return Illuminate\Database\Eloquent\Collection
    public function findByUser(User $user, $limit = null, $offset = 0)
    {
        $primaries = Notification::select(app('flarum.db')->raw('MAX(id) AS id'), app('flarum.db')->raw('SUM(is_read = 0) AS unread_count'))->where('user_id', $user->id)->whereIn('type', $user->getAlertableNotificationTypes())->where('is_deleted', false)->groupBy('type', 'subject_id')->orderByRaw('MAX(time) DESC')->skip($offset)->take($limit);
        return Notification::select('notifications.*', app('flarum.db')->raw('p.unread_count'))->mergeBindings($primaries->getQuery())->join(app('flarum.db')->raw('(' . $primaries->toSql() . ') p'), 'notifications.id', '=', app('flarum.db')->raw('p.id'))->latest('time')->get();
    }

Usage Example

 /**
  * {@inheritdoc}
  */
 protected function data(ServerRequestInterface $request, Document $document)
 {
     $actor = $request->getAttribute('actor');
     if ($actor->isGuest()) {
         throw new PermissionDeniedException();
     }
     $actor->markNotificationsAsRead()->save();
     $limit = $this->extractLimit($request);
     $offset = $this->extractOffset($request);
     $include = $this->extractInclude($request);
     return $this->notifications->findByUser($actor, $limit, $offset)->load($include);
 }
All Usage Examples Of Flarum\Core\Repository\NotificationRepository::findByUser
NotificationRepository