Bonjour,
Je souhaiterais récupérer des articles, chacun dépendant d'une catégorie, sachant que les articles de la catégorie "administration" ne soit visible que par les utilisateur ayant le droit "Super Admin" de FOSUserBundle.
Pour cela, je souhaiterais savoir s'il était possible de récupérer un "container" dans une classe héritant de la classe "EntityRepository" ?
Si non, quel était la meilleur façon de faire ?
Actuellement j'ai fait ça mais ça ne fonctionne pas du tout
(Je débute avec Symfony...)
Je sais pas sinon si c'est très propre de passer un objet "User" dans la méthode "getLastestNews"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php namespace Test\SiteBundle\Repository; use Doctrine\ORM\EntityRepository; use \Symfony\Component\DependencyInjection\ContainerAwareInterface; use \Symfony\Component\DependencyInjection\ContainerInterface; /** * NewsRepository * * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ class NewsRepository extends EntityRepository implements ContainerAwareInterface { protected $container; public function setContainer(ContainerInterface $container = null) { $this->container = $container; } public function getLastestNews($limit = 10) { $query = $this->createQueryBuilder('n') ->orderBy('n.created', 'DESC'); $user = $this->container->get('security.context')->getToken()->getUser(); if(!$user->isSuperAdmin()) $query ->select('n', 'nc') ->leftJoin ('n.category', 'cn') ->where ('cn.name != :name_cat') ->set ('name_cat', 'Administration'); if(FALSE === is_null($limit)) $query->setMaxResults($limit); return $query->getQuery() ->getResult(); } }
Merci de votre aide![]()
Partager