Bonjour,
Je cherche à mettre à jour un champ d'une entité utilisateur.
Toute la commande se déroule correctement mais le flush ne fonctionne jamais.
J'ai essayé de récupérer le manager avec tous les cas suivants sans succès :
- $this->objectManager; (ObjectManager dans la déclaration de la commande correspond à @doctrine.orm.entity_manager)
- $this->getContainer()->get('doctrine')->getManager()
- $this->getContainer()->get('doctrine')->getEntityManager()
Merci par avance de votre aide.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 <?php namespace App\CoreBundle\Command; use App\CoreBundle\Entity\User; use App\CoreBundle\Entity\UserRepository; use Doctrine\ORM\EntityManager; use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; /** * App\CoreBundle\Command\TvdfSyncCommand */ class TvdfSyncCommand extends ContainerAwareCommand { /** * @var LoggerInterface */ private $logger; /** * @var EntityManager */ private $objectManager; /** * @var UserRepository */ private $userRepository; /** * @param UserRepository $userRepository */ public function __construct(LoggerInterface $logger, EntityManager $objectManager, UserRepository $userRepository) { parent::__construct(); $this->logger = $logger; $this->objectManager = $objectManager; $this->userRepository = $userRepository; } /** * {@inheritDoc} */ public function configure() { $this ->setName('test:update:city') ->setDescription('Description') ->setDefinition([ new InputOption('dry-run', null, InputOption::VALUE_NONE, 'Dry run mode'), ]); } /** * {@inheritDoc} */ public function execute(InputInterface $input, OutputInterface $output) { $em = $this->objectManager; $user = $this->userRepository->findOneById(1); $user->setCity('Paris'); $em->persist($user); $em->flush(); // flush ne fonctionne pas, la bdd n'est pas mise à jour } }
Partager