Sonata管理员有许多属性形式

时间:2013-05-24 15:43:51

标签: symfony sonata-admin

我使用了4个entites:

  1. 翻译
  2. 语言
  3. translator_language
  4. 位点
  5. 翻译可以有多种语言。 语言可以有很多翻译。 可以为站点分配一对翻译/语言。

    所以即使没有"真正的属性,我也被迫创建translator_language。内部。

    class Language {
    
    /**
     * @var \XX\TranslateBundle\Entity\TranslatorLanguage
     * 
     * @ORM\OneToMany(targetEntity="TranslatorLanguage", mappedBy="language")
     */
    private $translators;
    

    XX

    class Translator {
    /**
         * @var XX\TranslateBundle\Entity\TranslatorLanguage
         * 
         * @ORM\OneToMany(targetEntity="TranslatorLanguage", mappedBy="translator")
         */
        private $languages;
    

    XX

    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;
    

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

    使用ManyToMany映射,我可以

    $formMapper->add('languages', null,
                            array('required' => false, 'expanded' => true))
    
    在TranslatorAdmin.php中

    ,这将为每种语言呈现复选框,并检查一个与翻译相关的语言,现在我试图用我的新架构来实现,但我无法轻易地做到这一点

    我真的不想创建一个翻译语言管理器,因为我不希望表单是相同的,来自翻译或语言(因为它可以通过简单的多对多映射完成)

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

1 个答案:

答案 0 :(得分:5)

我发现了一篇关于这个主题的非常好的帖子,希望这会对我有所帮助: http://www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.html