Php 如何处理smyfony2表单中的1:n关系?
我需要一个项目翻译实体和一个简单的方式来维护内容。一个“myentity”可以有多个“myentity\u trans” 到目前为止,这很简单,但我需要一个简单的动态表单,而不需要对symfony2默认行为进行太多更改 当我创建/编辑“myentity”时,我需要每种语言的“myentity_trans”子表单。有没有一个共同的方法来处理这一切 以我的实体为例:Php 如何处理smyfony2表单中的1:n关系?,php,forms,symfony,doctrine-orm,Php,Forms,Symfony,Doctrine Orm,我需要一个项目翻译实体和一个简单的方式来维护内容。一个“myentity”可以有多个“myentity\u trans” 到目前为止,这很简单,但我需要一个简单的动态表单,而不需要对symfony2默认行为进行太多更改 当我创建/编辑“myentity”时,我需要每种语言的“myentity_trans”子表单。有没有一个共同的方法来处理这一切 以我的实体为例: myentity - id - status myentity_trans - id - myentity_id - languag
myentity
- id
- status
myentity_trans
- id
- myentity_id
- language_id
- ...
language
- id
- name
编辑1:
这里是我的表单配置,如果我获得了相关实体,则可用于编辑:
$builder
->add('name')
->add('trans', 'collection', array(
'type' => new RetailerTransType(),
'allow_add' => true,
'allow_delete' => true
));
现在我喜欢每种可能的语言的空表单,这样用户就可以轻松地创建翻译。我尝试使用查询生成器,但它显然不适用于集合类型。您应该使用其中一种,它可以使用
。。。或者如果使用PHP5.4+和可用的特性,我的提示
为了将这些与表单很好地集成,请使用。
这个捆绑包提供的正是您所需要的——您的语言的翻译集合
有关使用DoctrineBehaviors\translateable和当前区域设置代理的快速了解,请参阅,我发现这是一个非常舒适的解决方案
只需创建类实体
和实体翻译
,包括代理行。。。调用$entity->getProperty()
->自动应用当前区域设置。尽可能简单:-)看:这就是我在此期间发现的。如何将其与语言表连接,以便为每种语言获取一个空表单?如果可能,无需另一个javascript请求。否,您需要javascript来添加空表单。但您不需要向服务器发送请求。空子窗体的原型已在html中。它在编辑实体时有效,但在创建时无效?我尝试在formtype类中使用带有左联接的querybuilder来获取每种语言的实体为空的集合,但仍然存在语法错误:(是否有人对此有异议?这里的问题是,没有人知道您迄今为止做了什么。错误消息是什么?您的表单类型是什么?没有人可以帮助您,只能链接教程而没有更多信息。请在常见问题解答中告知自己如何提出正确的问题。