У меня есть много разных ассоциаций с дополнительными полями. Я решил с новым лицом и два один ко многим отношений после этого урока: http://www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.htmlДоступ к доктрине в SonataAdmin Класс
Meeting ---> MeetingContacts < --- Контакт
Когда я создаю новую встречу мне нужно выбрать все люди, будут помогать, поэтому у меня есть список флажков со всеми контактами. Это прекрасно работает в Сонате.
Это мое совещание configureFormFields класс:
->with('Contacts', array('class' => 'col-md-6'))
->add('contacts' , 'entity' , array(
'class' => 'AppBundle:Contact' ,
'expanded' => true ,
'multiple' => true ,))
->end();
Моя проблема заключается в том, что я хочу, чтобы отфильтровать этот список флажок в поле Создать действий двух свойств контактного лица.
Решение, которое я основал на форумах, - передать массив в представление с контактами для каждого из этих значений, а затем в twig с помощью javascript show или скрыть этот флажок.
->with('Contacts', array('class' => 'col-md-6'))
->add('contacts' , 'entity' , array(
'class' => 'AppBundle:Contact' ,
'expanded' => true ,
'multiple' => true ,),
array('myArray' => myArray)))
->end();
Теперь проблема заключается в том, что я не могу получить доступ к контактной Repository, чтобы создать этот массив в администраторе класса.
Я пытался без успеха:
$em = $this->getConfigurationPool()->getContainer()->get('Doctrine')->getManager()
и добавить учение в службе (No Entity Manager in Custom Class and ContextErrorException)
sonata.admin.contact:
class: AppBundle\Admin\ContactAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Content", label: "Contacts" }
arguments:
- ~
- AppBundle\Entity\Contact
- ~
- @doctrine.orm.default_entity_manager
calls:
- [ setTranslationDomain, [AppBundle]]
но когда я добавить четвертый аргумент я заяц исключения для плохого формата YML.
Как я мог бы получить доступ к доктрине EM в классе Admin, или как я мог бы перейти к администратору? Создайте форму для этих дополнительных данных?
Спасибо.