前提・実現したいこと
カスタムコマンドから、Doctrineを使用したい。
発生している問題・エラーメッセージ
EntityManagerをuseしても「Attempted to call an undefined method named “getDoctrine” of class “Doctrine\ORM\EntityManager”」となる。
該当のソースコード
PHP
1class TestCommand extend Command 2{ 3 ... 4 public function __construct(EntityManager $em) 5 { 6 $this->em = $em; 7 } 8 9 ... 10 public function exec() 11 { 12 ... 13 //名前SQLを使用する必要があるため、最終的にはgetConnection()を呼び出し、関数に渡す。 14 $conn = $this->em->getDoctrine()->getManager()->getConnection(); 15 ... 16 } 17 18} 19
試したこと
- EntityManagerをuse。
<<追記>>
- EntityManagerInterfaceをuse
- service.ymlに下記を追記
php
1App\Command\: 2 resource; ‘../src/command’ 3 arguments: [“@doctrine.entity_manager”]
→FatalThrowbleError
“Argument 1 passed to App\Command\TestCommand::__construct() must implement interface Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface, instance of Doctrine\ORM\EntityManeger given, called in ..(略)..TextCommand.php on line 14”
と表示される。
補足情報(FW/ツールのバージョンなど)
Symfony4.4
あなたの回答
tips
プレビュー