Il faut créer des repository qui seront associés à tes entity, ca evite de mettre tout dans le controler et réduire la lisibilité du code. Voila un exemple :
Dans ton bundle tu crée un dossier repository dans lequel tu vas créer des fichier avec le nom : monEntityRepository.php
dans resource/config/services.yml tu vas venir configuer ce repository. Exemple
1 2 3 4 5 6 7
|
ingredient_repository:
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
class: Menu\RecetteBundle\Repository\IngredientRepository
arguments:
- Menu\RecetteBundle\Entity\Ingredient |
voici le fichier Ingredient repository :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
namespace Menu\RecetteBundle\Repository;
use Doctrine\ORM\EntityRepository;
class IngredientRepository extends EntityRepository {
//la tu viens mettre tes methodes metier ex :
public function deleteById($id) {
$query = $this->createQueryBuilder('i')
->delete()
->where('i.id = :id')
->setParameter('id', $id)
->getQuery();
return $query->execute();
}
} |
Dans ton controler, il faut rajouter le repo dans les includes
1 2 3
|
//repository
use Menu\RecetteBundle\Repository\IngredientRepository; |
et un exemple d'appel dans le controler :
$query = $this->get('ingredient_repository')->deleteById($id);
Partager