I'm using 4 entites :
Translator can have many languages. Languages can have many translators. A site can be assigned a couple translator/language.
So I have been forced to create translator_language even if there is no "real attribute" inside.
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 is ok ([Mapping] OK - The mapping files are correct.)
With ManyToMany mapping, I could do
$formMapper->add('languages', null,
array('required' => false, 'expanded' => true))
in TranslatorAdmin.php, and that would render checkboxes for each languages, and checked one for languages associated to translator, now I'm trying to get that with my new architecture, but no way I manage to do that easily.
I don't really want to create a translatorlanguageAdmin because I don't want the form to be the same, coming from translator or language (as it can be done with simple many to many mapping)
Do I need to associate a query and a template to the showMapper ? Or am I missing something easy?
我找到了一个关于此主题的非常清楚的帖子,希望对我有帮助,对我有帮助: http : //www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.html
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.