Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Symfony 索纳塔管理多对多属性表单_Symfony_Sonata Admin - Fatal编程技术网

Symfony 索纳塔管理多对多属性表单

Symfony 索纳塔管理多对多属性表单,symfony,sonata-admin,Symfony,Sonata Admin,我使用了4个实体: 翻译器 语言 翻译语言 场地 译者可以有多种语言。 语言可以有许多翻译人员。 一个站点可以分配一对翻译/语言 因此,我被迫创建translator_语言,即使里面没有“真正的属性” xx xx 映射正常([Mapping]正常-映射文件正确。) 使用许多映射,我可以 $formMapper->add('languages', null, array('required' => false, 'expanded' =&

我使用了4个实体:

  • 翻译器
  • 语言
  • 翻译语言
  • 场地
  • 译者可以有多种语言。 语言可以有许多翻译人员。 一个站点可以分配一对翻译/语言

    因此,我被迫创建translator_语言,即使里面没有“真正的属性”

    xx

    xx

    映射正常([Mapping]正常-映射文件正确。)

    使用许多映射,我可以

    $formMapper->add('languages', null,
                            array('required' => false, 'expanded' => true))
    
    在TranslatorAdmin.php中,这将为每种语言呈现复选框,并为与translator关联的语言选中一个复选框,现在我正试图通过我的新体系结构实现这一点,但我无法轻松做到这一点

    我真的不想创建translatorlanguageAdmin,因为我不希望表单是相同的,来自translator或language(因为它可以通过简单的多对多映射实现)


    我是否需要将查询和模板关联到showMapper?还是我错过了一些简单的东西?

    我找到了一篇关于这个主题的非常好且清晰的帖子,希望这会对我有很大帮助,因为它帮助了我:

    我发现了一篇关于这个主题的非常好且清晰的帖子,希望这会对我有很大帮助,因为它帮助了我:

    一般问题:为什么不在语言和译者之间建立多对多关系,并将网站添加到译者中?因为我想这并不意味着相同的事情,我想将译者/语言的关联与网站相关联,不是所有语言的翻译人员。那么你应该在翻译人员->语言和侧边以及翻译人员->语言之间创建多对多。一个译者可以有他能够或允许翻译的语言,一个网站可以有不同的语言和不同的译者。。不需要第四个实体translatorSite,只会让事情变得更复杂:)我使用的是遗留数据库,所以我没有选择余地,但我同意你的观点,这不是一个完美的体系结构。问题是我不知道这是否可能以及如何(如果可能的话),要链接一个非实体的关系,请回答一个正确的问题-我不明白您真正想要的是什么:)比如我如何使用sonata admin创建一个具有以下功能的表单…一般问题:为什么不在语言和翻译之间创建多对多关系,并将网站添加到翻译中?因为我想这并不意味着相同的事情,我想将译者/语言的关联与一个网站相关联,而不是将译者与他的所有语言相关联。然后,你应该在译者->语言和侧边以及译者->语言之间创建多对多。一个译者可以有他能够或允许翻译的语言,一个网站可以有不同的语言和不同的译者。。不需要第四个实体translatorSite,只会让事情变得更复杂:)我使用的是遗留数据库,所以我没有选择余地,但我同意你的观点,这不是一个完美的体系结构。问题是,我不知道是否可能以及如何(如果可能)链接一个非实体的关系。请回答一个正确的问题-我无法理解您真正想要的是什么:)例如,我如何使用sonata admin创建具有以下功能的表单。。。
    class Translator {
    /**
         * @var XX\TranslateBundle\Entity\TranslatorLanguage
         * 
         * @ORM\OneToMany(targetEntity="TranslatorLanguage", mappedBy="translator")
         */
        private $languages;
    
    class TranslatorLanguage
    {
    
        /**
         * @var XX\TranslateBundle\Entity\Translator
         *  
         * @ORM\Id
         * @ORM\ManyToOne(targetEntity="Translator", inversedBy="languages")
         * @ORM\JoinColumn(name="translatorID", referencedColumnName="ID", nullable=false)
         */
        private $translator;
    
        /**
         * @var XX\TranslateBundle\Entity\Language
         *  
         * @ORM\Id
         * @ORM\ManyToOne(targetEntity="Language", inversedBy="translators")
         * @ORM\JoinColumn(name="languageID", referencedColumnName="ID", nullable=false)
         */
        private $language;
    
    
        /**
         * @var XX\TranslateBundle\Entity\TranslatorSite
         * 
         * @ORM\OneToMany(targetEntity="TranslatorSite", mappedBy="translatorLanguage")
         */
        private $translatorSites;
    
    $formMapper->add('languages', null,
                            array('required' => false, 'expanded' => true))