/** * @param QChartsSubjectInterface $user * @return array * @throws DatabaseException */ public function getFavouritesBy(QChartsSubjectInterface $user) { try { //return a list of query request! $queryBuilder = $this->createQueryBuilder('qr'); $queryBuilder->select("qr.title")->addSelect("qr.id")->addSelect("qr.dateLastModified")->addSelect("qr.dateCreated")->innerJoin('qr.favoritedBy', 'fav')->where("fav = :userID")->setParameter("userID", $user->getId()); $query = $queryBuilder->getQuery(); $results = $query->getResult(); return $results; } catch (ORMQueryException $e) { throw new DatabaseException("Error while trying to fetch favorites", $e->getCode(), $e); } catch (DBALQueryException $e) { throw new DatabaseException("Error while trying to fetch favorites", $e->getCode(), $e); } }
/** * Remove favorite * * @param QChartsSubjectInterface $user */ public function removeFavoritedBy(QChartsSubjectInterface $user) { $this->favoritedBy->removeElement($user); }