以下のようにservices.ymlファイルを登録しました:
services:
PMI.form.users_tasks:
class: PMI\UserBundle\Form\UsersTasksType
arguments:
EntityManager: "@doctrine.orm.default_entity_manager"
で一覧表示できるphp app/console container:debug
ので、サービスが適切に登録されていることを意味します。
私の UsersTasksType クラスには、以下のようなものがあります:
class UsersTasksType extends AbstractType
{
protected $ur;
public function __construct(EntityManager $ur )
{
$this->setUr($ur);
}
// Get and setters
}
依存性注入はEntityManager
、クラス コンストラクターに渡す必要がなくなったことを意味しますか? または何 ?
以下のコードを実行する必要がある場合:
$form = $this->createForm(new UsersTasksType(), $entity);
次のエラーが表示されます。
Catchable Fatal Error: Argument 1 passed to PMI\UserBundle\Form\UsersTasksType::__construct() must be an instance of Doctrine\ORM\EntityManager, none given, called in C:\wamp\www\PMI_sf2\src\PMI\UserBundle\Controller\UsersTasksController.php on line 74 and defined in C:\wamp\www\PMI_sf2\src\PMI\UserBundle\Form\UsersTasksType.php line 19
そして、私は以下のことをしなければなりません:
$em = $this->container->get('doctrine.orm.entity_manager');
$form = $this->createForm(new UsersTasksType($em), $entity);
依存性注入の全体的な目的は何でしょうか?