Bonjour,

Etant novice sur symfony, toute suggestion ou critique est la bienvenu.
J'ai veux créer un bundle de gestion de module qui comporte une entité "module" dans la base de donnée.
Je pense mettre dans la classe ModuleRepository la function permettant de savoir si le bundle est activer ou pas.
Le soucis c'est que je n'arrive pas à utiliser getDoctrine et je ne sais pas quelle classe appeler pour ca?
Autrement est-ce que je me trompe dans ma stratégie?

public function isEnable()
    {
        $repository = $this->getDoctrine()
                           ->getManager()
                           ->getRepository('ProjetGestionModuleBundle:Module');
        $rowModule = $repository->findBy( array('label'=>'test'));

        echo $rowModule;
    }

Merci pour vos conseils

3 réponses


Que te retourne ta fonction isEnable() ?

As-tu une Exception de levée ?

starfiko
Auteur

Oui tout à fait à la place de

echo $rowModule;

je mettrai

return $rowModule;

Ainsi dans le controller du module je mettrai par exemple

public function indexAction($name)
{
     $module = new ModuleRepository();

    if( !$module->isEnable() ) {
         throw $this->createNotFoundException('Le module est inactif'); 
    }
}

Le soucis c'est que getDoctrine ne fonctionne pas du tout dans la classe moduleRepository

Le soucis c'est que getDoctrine ne fonctionne pas du tout dans la classe moduleRepository
Forcément, c'est une méthode de controller.

Ce code ci :

$repository = $this->getDoctrine()
                          ->getManager()
                          ->getRepository('ProjetGestionModuleBundle:Module');

Est à mettre dans ton controller.

Celui-là à exclure :

$module = new ModuleRepository();

Tu instancie jamais de Repository, tu récupère ton repository par le bout de code précédent.

Ta fonction isEnable() renvoi-t-elle la valeur d'une propriété (persisté en BDD) de ton modèle Module?