回答
将整个容器注入表单类型是一种不好的做法。请考虑仅向您的表单类型注入必需的依赖项。您可以简单地define your form type as a service并注入所需的依赖关系。
的src /的appbundle /表格/ TaskType.php
use Doctrine\ORM\EntityManagerInterface;
// ...
class TaskType extends AbstractType
{
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
// ...
}
的src /的appbundle /资源/配置/ services.yml
services:
AppBundle\Form\TaskType:
arguments: ['@doctrine.orm.entity_manager']
tags: [form.type]
为了注射仓储类有两种方式。第二种方法更干净。使用EM工厂
$this->em->getRepository(User::class)
注册库类的服务,并将它注入到你的表单类型:从EM
注入EntityManager类,并获得仓储类
services:
AppBundle\Repository\UserRepository:
factory: ['@doctrine.orm.entity_manager', getRepository]
arguments: ['AppBundle\Entity\User']
我想从我的应用程序获取存储库 – webwinner
更新了我的答案,并在服务中注入了Repository类。 –
的一个问题是通过集装箱作为参数传递给从控制器的FormType文件:
$form_type = new MyFormType($this->container);
,并添加构建方法在你的FormType文件中:
protected $container;
public function __construct($container)
{
$this->container = $container;
}
然后你可以通过'$ this-> container'来访问容器;
希望它能帮助你;)
只有在他们使用古老版本的Symfony时。时代已经改变。 – Cerad
- 1. 如何在Symfony中的表单构建器中获取字段值
- 2. symfony表单构建器使用容器吗?
- 3. 从表单构建器symfony 2.8获取用户
- 4. Swift:如何使用Eureka表单构建器获取表单值?
- 5. 如何在控制器动作中获取表单Symfony 2
- 6. Oracle表单构建器没有从服务器获取值
- 7. 如何在Symfony 3.3中标记服务并从中构建一个小容器?
- 8. Symfony异常KNPMenu构建器不存在菜单生成器
- 9. symfony获取容器不在控制器和服务
- 10. 如何使用Symfony查询构建器从外部表中的连接表中获取第一条记录?
- 11. 如何在界面构建器中添加栏按钮项?
- 12. 如何在构建器中添加本地依赖关系
- 13. 在容器建立后添加服务
- 14. 在Symfony控制器中访问容器
- 15. jquery web表单构建器
- 16. symfony获取表单属性
- 17. Ansible:在容器创建期间获取码头容器输出
- 18. 如何在Grails中实现表单构建器插件
- 19. 如何在Rails 3.1.4中使用FormBuilder.new构建表单构建器对象
- 20. 如何在单个构建器类中使用多个构建器模式?
- 21. 在Symfony中获取记录器不在控制器中
- 22. 的Symfony:如何创建使用表单生成器
- 23. 如何在yii表单中添加日期选择器?
- 24. 如何在python表单服务器中添加opencv?
- 25. 在容器构建中的SingleInstance激活
- 26. 获取服务容器中的Symfony 2控制台命令给
- 27. 如何获取容器UITableView中的TableView的单元格
- 28. 如何在tfs构建服务器上获取当前changesetid?
- 29. 如何在控制器中获取表单值
- 30. 如何添加ItemSorter到Vaadin中的表格容器?
的http:// symfony的.com/doc/current/form/form_dependencies.html – Cerad