浏览Symfony2的Symblog tutorial,在创建表单的过程中,我创建了一个联系实体(Entity / Enquiry.php),我在其中定义了一些字段和一些访问这些字段的方法。然后我创建另一个文件夹Form / EnquiryType.php来构建表单,然后创建一个contact.html.twig来显示。我无法理解为什么我们为Entity / Enquiry.php和Form / EnquiryType.php创建了两个名称空间。当他们必须互相打交道时。为什么我们不在一个文件夹或一个文件中编写这两个类。还有一个问题。它们属于Controller还是View MVC的一部分。
答案 0 :(得分:1)
表单类型用于配置来自对象(如实体)的数据如何映射到表单(反之亦然)。
实体不应该被命名为“实体”,它们应该只是你的商业对象,可以通过名为doctrine2的层来持久化。
回答你关注的问题, 实体大约是M, 而表单类型是关于用户输入(所以VC)。 查看,因为它呈现人工界面让用户输入输入, 控制器,因为这是您处理表单生命周期的地方。
答案 1 :(得分:0)
原因是逻辑分离。为什么我们不在一个文件夹/命名空间中定义MVC的所有部分?因为它会一团糟。这就是为什么需要逻辑分离的原因。
并非所有实体都必须具有相关的表单类型 - 使用没有表单的实体是正常的。