我正在构建CLI应用程序,并且正在尝试保存名为Config
的实体。这是我创建的命令的execute()
逻辑:
$name = $input->getArgument('name');
$value = $input->getArgument('value');
$output->writeln(sprintf('Setting <info>%s</info> to <info>%s</info>...', $name, $value));
$config = new Config;
$config
->setName($name)
->setValue($value)
;
$em = $this->getDoctrine()->getManager();
$em->persist($config);
$em->flush();
$output->writeln('Success');
问题是http://www因此$this->getDoctrine()
未定义。
如何在ContainerAwareCommand
内部保存实体?
答案 0 :(得分:1)
要获取实体管理器,您可以使用
$em = $this->getContainer()->get('doctrine')->getManager();
所以
$config = new Config;
$config
->setName($name)
->setValue($value)
;
$em = $this->getContainer()->get('doctrine')->getManager();
$em->persist($config);
$em->flush();