Есть документ с формой, в которой есть поле с выбором пользователя.
Связь один ко многим(один пользователь может быть выбран в разных документах).
Список пользователей можно вывести в виде селекта или набором чек-боксов, но если их будет больше 10, то это уже не удобно, не говоря уже о числах большего порядка.
Подскажите как лучше реализовать выбор пользователя, например через модальное окно с listview пользователей, которое будет открываться по клику на кнопку?
Пока у меня идея только скрывать текущее поле Пользователь, но просто так его не скрыть, видимо придется возиться с
->add('user', 'hidden',array('mapped' => false))
а дальше делать свое кастомное и в него с помощью js подгружать выбранного, а потом уже в контроллере из этого поля копировать значение в поле Пользователя и делать запись в БД, но тогда возникает проблема с отображением выбранного пользователя при открытии формы на редактирование.
Может быть есть какой-то стандартный механизм или же нечто подобное, что можно переписать.
UPD:
Видимо не совсем ясно выразился, к админке это не имеет никакого отношения, есть сущность документ, которая была создана при помощи CRUD, формы немного подправлены и в таком варианте они работают, но интерфейс выбора - селект:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder
->add('created_date')
->add('period')
...
->add('contact')
->add('assigned_user')
;
}
Вызывается это контроллере для сущности в цепочке:
public function editAction($id){
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('MyBundle:Documents')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Sales entity.');
}
$editForm = $this->createEditForm($entity);
$deleteForm = $this->createDeleteForm($id);
return $this->render('MyBundle:My:edit.html.twig', array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
));
}
private function createEditForm(Documents $entity){
$form = $this->createForm(new MyType(), $entity, array(
'action' => $this->generateUrl('my_update', array('id' => $entity->getId())),
'method' => 'PUT',
));
$form->add('submit', 'submit', array('label' => 'Update'));
return $form;
}
Тут все было сделано при помощи CRUD, логика не менялась.
Суть задачи в том, чтобы можно было выбирать пользователей и контакты в модальном окне, а не через предлагаемые по умолчанию селект/ чекбоксы.