5

AdminクラスのSonataAdminBundleで、ManyToManyフィールドでorderByを作成できません。

たとえば、著者と本。著者は多くの本を持つことができ、本は多くのAutorsを持つことができます。上記のリンクには、フォームフィールドのクエリを使用できると書かれています。そのため、作成者を選択して名前で検索するクエリを準備できました。これを管理する方法は?クエリを作成してクエリオプションを通過させるためにEntityManagerを取得するにはどうすればよいですか?

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('name','text')
        ->add('author', 'sonata_type_model', array('query' => ....), array('edit' => 'inline'))
    ;
}
4

2 に答える 2

9

OK、動作しました:

/**
 * @param \Sonata\AdminBundle\Form\FormMapper $formMapper
 * @return void
 */
protected function configureFormFields(FormMapper $formMapper)
{
    $entity = new \MyCompany\MyProjectBundle\Entity\Seria();
    $query = $this->modelManager->getEntityManager($entity)->createQuery('SELECT s FROM MyCompany\MyProjectBundle\Entity\Seria s ORDER BY s.nameASC');

    $formMapper
        ->add('title', 'text')
        ->add('seria', 'sonata_type_model', array('required' => true, 'query' => $query), array('edit' => 'standard'))
        ->add('description', 'textarea',
               array('attr' => array('class' => 'tinymce'), 'required' => false))        
    ;
}
于 2011-11-14T15:52:14.830 に答える
2

それについて何か変わったことはありますか?これを使用すると、「クラスが存在しません(500エラー)」が発生します。

注:Symfony 2.1では機能していましたが、Symfony2.2では機能しなくなりました。

于 2013-03-20T14:02:04.220 に答える