/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * * @return void */ public function boot(Router $router) { /** * Route model binding */ $router->bind('category', function ($slug) { return app('CategoryRepository')->findBySlugOrFail($slug); }); $router->bind('user', function ($username) { return app('UserRepository')->findBySlugOrFail($username); }); $router->bind('sticker', function ($slug) { return app('StickerRepository')->findBySlugOrFail($slug); }); $router->bind('task', function ($slug) { return app('TaskRepository')->findBySlugOrFail($slug); }); $router->bind('submission', function ($id) { return \Stickable\Models\Submission::findOrFail($id); }); $router->bind('post', function ($id) { return \Stickable\Models\Post::findOrFail($id); }); $router->bind('comment', function ($id) { return \Stickable\Models\Comment::findOrFail($id); }); $router->bind('notification', function ($id) { return \Stickable\Models\Notification::findOrFail($id); }); $router->bind('event', function ($id) { return \Stickable\Models\EventLog::findOrFail($id); }); $router->bind('todo', function ($id) { return \Stickable\Models\ToDo::findOrFail($id); }); parent::boot($router); }
public function getNotifications(User $user) { $results = DB::select("\n SELECT\n *,\n COUNT(*) AS groupCount,\n GROUP_CONCAT(DISTINCT fromUserId SEPARATOR ',') AS fromUserIds\n FROM\n notifications\n WHERE\n userId = ?\n AND\n seenAt IS NULL\n GROUP BY\n " . implode(',', $this->groupFields) . "\n ORDER BY\n id DESC\n ", [$user->id]); $notifications = Notification::hydrate($results); return $notifications; }