Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何处理smyfony2表单中的1:n关系?_Php_Forms_Symfony_Doctrine Orm - Fatal编程技术网

Php 如何处理smyfony2表单中的1:n关系?

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”可以有多个“myentity\u trans”

到目前为止,这很简单,但我需要一个简单的动态表单,而不需要对symfony2默认行为进行太多更改

当我创建/编辑“myentity”时,我需要每种语言的“myentity_trans”子表单。有没有一个共同的方法来处理这一切

以我的实体为例:

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来获取每种语言的实体为空的集合,但仍然存在语法错误:(是否有人对此有异议?这里的问题是,没有人知道您迄今为止做了什么。错误消息是什么?您的表单类型是什么?没有人可以帮助您,只能链接教程而没有更多信息。请在常见问题解答中告知自己如何提出正确的问题。