2013-05-24 1 views
0

Я использую 4 entites:Sonata Администратор многие ко многим с атрибутами образуют

  1. переводчик
  2. язык
  3. translator_language
  4. сайт

Переводчик может иметь множество языков. Языки могут иметь много переводчиков. На сайт может быть назначен переводчик/язык.

Таким образом, я был вынужден создать translation_language, даже если внутри нет «реального атрибута».

class Language { 

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

хх

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; 

Отображение в порядке ([Mapping] OK - Файлы отображения являются правильными.)

С отображением ManyToMany, я мог бы сделать

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

в TranslatorAdmin.php, и это будет отображать флажки для каждого языка и проверено на языках, связанных с переводчиком, теперь я пытаюсь получить это с помощью моей новой архитектуры, но никак не могу это сделать легко.

Я не хочу, чтобы создать translatorlanguageAdmin, потому что я не хочу, чтобы форма такого же, исходя из транслятора или языка (как это может быть сделано с простыми многими ко многим картографирования)

Do Мне нужно связать запрос и шаблон с showMapper? Или мне что-то не хватает?

+0

общий вопрос: почему бы вам не создать много-ко-многим между языком и переводчиком и добавить сайты к вашему переводчику? – nifr

+0

Потому что это не значит то же самое, что я думаю, я хочу связать ассоциации переводчика с языком, а не переводчиком со всеми его языками. – copndz

+0

, тогда вы должны создать много-ко-многим между языком переводчика -> язык и язык боков и переводчиков ->. переводчик может иметь языки, на которых он способен или может переводить, на сайте могут быть разные языки и разные переводчики .. нет необходимости в четвёртом объекте translationSite, просто усложняет ситуацию :) – nifr

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^