2014-01-09 2 views
1

У меня есть эта форма Symfony с ManyToMany отношение работает нормально, оно отображает все стороны со свойством name на объекте Party.symfony2 Отображение тегов выбора объектов

При отправке он запрашивает базу данных в соответствии с выбранными сторонами и получает лиц, приглашенных этим сторонам.

public function buildForm(FormBuilderInterface $builder, array $options) { 
    $builder 
      ->add('parties', 'entity', array(
       'class' => 'ProtoBundle:Party', 
       'multiple' => true, 
       'expanded' => false, 
       'property' => 'name', 
       'required' => false,)); 
} 

с параметром

'multiple' => 'true, 

все стороны отображаются одновременно в выбранном раскрывающемся списке (не то, что я хочу).

То, что я хочу, это просто один выберите тег с параметром

'empty_value' => 'choose a party' 

, а затем, когда пользователь нажимает на нее, отображаются значения. На самом деле я могу сделать это с помощью параметра

'multiple'=> false, 

, но проблема в том, что я получаю сообщение об ошибке:

Ни свойство «партии», ни один из методов «setParties()», " __set() "или" __call() "существуют и имеют открытый доступ в классе" Acme \ ProtoBundle \ Entity \ Person ".

Кто-нибудь знает, как заставить этот тег select работать и принести мне подробное решение?

ответ

1

В первую очередь вы должны принять во внимание, что если вам действительно нужно много-много отношений, когда вам нужен простой блок выбора без множественного выбора.

Но ...

в сущности вы должны проверить, если пришедшего значение является массивом, и это все:

public function setParties($parties) 
{ 
    if (!is_array($parties)) { 
     $parties = array($parties); 
    } 
    $this->parties = $parties; 
} 
+0

Чем вы брат. ты действительно помог мне! он отлично работает! – Albee

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