Symfony2: как я могу перечислить элементы таблицы в FormChoice, разделяя их некоторым свойством - PullRequest
1 голос
/ 09 марта 2012

Есть ли способ получить объекты из БД и перечислить их по категориям? У меня есть таблица Artist, у которой есть жанр, и у каждого жанра есть категория, поэтому, когда я выбираю жанр при создании нового исполнителя, я хотел бы видеть их отдельно по каждой категории. Я помню, что в предыдущих версиях вы могли сделать что-то вроде:

    $this->widgetSchema['genre_id'] = new sfWidgetFormChoice(array(
                        'choices' => array('-- Select --',
'-- Category1 --'=>Doctrine_Core::getTable('Genre')->getGenres('Category1')),
'-- Category2 --'=>Doctrine_Core::getTable('Genre')->getGenres('Category2')),
                        'multiple' => false, 'expanded' => false
                    ));

И в результате был выделен жирный шрифт «CategoryX», за которым следовали соответственно жанры.

После глубокого поиска я нашел только:

->add('group', 'entity', array(
                   'class' => 'Vendor\MyBundle\Entity\Group',
                   'label'=>'Group:',
                   'query_builder' => function(EntityRepository $er) {
                       return $er->createQueryBuilder('g')
                                 ->... // whatever you want to do
                       }
                    ))

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

Большое спасибо.

...