0

因此,我正在为以下问题寻找解决方案,这将是在 Symfony2.3 中实现的“最佳实践”。

情况的简短描述:我在它自己的类中定义了一个表单(“ProductType”)该表单包含一个链接到不同表的字段。用户需要从该列表中选择 1 个值。

我想限制用户可以选择的值。并非在数据库中找到的所有选项都是相关的。我需要根据数据库中的信息和已应用于表单的当前值动态减少列表中的选项。我可以通过添加一个“订阅”来更改表单的内容来做到这一点。但在这个订阅中,我需要访问数据库/Doctrine Repository 以确定用户可以选择的列表。

所以我需要在 Subscription 中注入 Doctrine,但是在 Type-class 中是不可用的。

什么是最好的解决方案?- 将 Subscription 类定义为 Symfony 中的服务并通过该路由注入 Doctrine?- 别的东西?

不幸的是,Symfony 文档对此并不十分清楚。

4

2 回答 2

0

我不确定我是否得到了您真正想要做的事情,但是如果您想减少取决于值的元素数量(例如下拉菜单),请对实体字段类型使用查询构建器:

http://symfony.com/doc/current/reference/forms/types/entity.html#query-builder

于 2013-05-31T10:30:15.243 回答
0

您需要使用查询生成器,因此您需要存储库。为此,只需使用

use Doctrine\ORM\EntityRepository; 

在您的 ProductType 中,如文档中所述

于 2013-05-31T14:00:39.347 回答