0

我正在使用 4 个实体:

  1. 译者
  2. 翻译者语言
  3. 地点

翻译器可以有多种语言。语言可以有很多翻译者。可以为站点分配一对翻译/语言。

所以即使里面没有“真正的属性”,我也被迫创建了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;

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

使用 ManyToMany 映射,我可以做到

$formMapper->add('languages', null,
                        array('required' => false, 'expanded' => true))

在 TranslatorAdmin.php 中,这将为每种语言呈现复选框,并检查一种与翻译相关的语言,现在我正试图用我的新架构来实现它,但我无法轻松做到这一点。

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

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

4

1 回答 1

5

我找到了一篇关于这个主题的非常好的和清晰的帖子,希望这对我有很大帮助:http: //www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.html

于 2013-05-30T08:18:33.737 回答