Ceci est une ancienne révision du document !
Opérations CRUD
Entity manager & Repository
Entity manager
Récupération de l'entity manager doctrine dans un contrôleur :
// you can fetch the EntityManager via $this->getDoctrine()
// or you can add an argument to your action: index(EntityManagerInterface $em)
$em = $this->getDoctrine()->getManager();
Comme indiqué, l'entity manager peut aussi être injecté.
Repository
$productRepository = $this->getDoctrine()->getRepository(Product::class);
Pour une bonne séparation du code, il est conseillé de créer des classes Repository pour chacune des classes métier utilisées :
namespace App\Repository;
//...
class UserRepository extends ServiceEntityRepository {
public function __construct(ManagerRegistry $registry) {
parent::__construct($registry, User::class);
}
//...
}
Il est ensuite possible d'injecter ce Repository pour l'utiliser dans un contrôleur :
class UsersController extends Controller{
/**
* @var UserRepository
*/
private $repository;
public function __construct(UserRepository $userRepo){
$this->repository=$userRepo;
}
}