考虑以下场景
我们有一个简单的数据库,它涉及两个实体:user
和category
.
对于我们的假设,假设 auser
可以只有一种类型,category
并且 acategory
可以与n users
相关联。
现在,考虑一个网页,其中 a user
-say-ROLE_ADMINISTRATOR
可以编辑用户表并将它们关联到不同的表category
。
据我所知(而且我对 symfony 还是很陌生),如果我同时使用 Doctrine 和 symfony2,使用 - 比方说 - 注释方法,我将有两个实体(php 类)。
嵌入式表单
我将创建一个表单,它会显示user
并且,为了显示 - 当然会持续存在!- 也是他category
我“选择”遵循“嵌入形式”的策略。
话虽如此,实体已经创建,我将不得不创建一个表单category
(假设formBuilder
我将只添加id
的属性category
)。
之后,我必须将formBuilder
前一个表单添加到 UserType 类中,并且通过“某种魔法”,表单将(在适当的操作之后)呈现为魔法,就像魔法一样,当我发布它时(并绑定,和依此类推)返回所有信息将持久保存到数据库中
数据转换
器 AKA 将表单的输入转换为对象,反之亦然。
这样,我将不得不在他的构建器中定义一个 - 比方说 -CategorySelectorType
将添加一个将执行这些转换的类(服务?)。
现在我们定义数据转换器本身,它将实现DataTransofmerInterface
(使用他的方法等等......)
下一步将该实体注册到服务中并添加到UserType
将使用该服务的表单中。
所以我不明白这两种方法之间的任何“强烈”区别,而是服务的“可重用性”。有人可以为我提供不同的观点并解释我的差异,如果有的话?