我正在使用 4 个实体:
- 译者
- 语
- 翻译者语言
- 地点
翻译器可以有多种语言。语言可以有很多翻译者。可以为站点分配一对翻译/语言。
所以即使里面没有“真正的属性”,我也被迫创建了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 吗?还是我错过了一些简单的东西?