6. コマンドクラスを修正してコマンド実行時にDB登録処理もするように変更する
前回までの作業で、Symfony2でデータベースを使用する準備が整ったので、Commandクラス(コマンドクラス Command/PersistCommand.php)
の内容を修正し、データベースの登録処理を追加します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $text = 'Hello '.$name; $member = new Member(); $member->setName($name); $member->setCreatedAt(new \DateTime()); $member->setUpdatedAt(new \DateTime()); $container = $this->getContainer(); $em = $container->get('doctrine')->getEntityManager(); $em->persist($member); $em->flush(); $output->writeln($text); } |
以下の二行で、エンティティマネージャを取得します。
1 2 |
$container = $this->getContainer(); $em = $container->get('doctrine')->getEntityManager(); |
以下の二行で、レコードの追加とその反映を行います。
1 2 |
$em->persist($member); $em->flush(); |
これにより、引数で与えられた名前とその時点の日時がデータベースに反映されます。