我注册了我的 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);
那么依赖注入的全部目的是什么?