在Admin类的SonataAdminBundle中,我无法创建orderBy on ManyToMany field。
例如作者和书。作者可以有很多书,书可以有很多汽车。在上面的链接中写道,我可以对表单字段使用查询。因此,我可以准备一个查询,以选择作者并按姓名骚扰他们。如何处理?如何获得EntityManager以便创建查询并将其通过查询选项传递?
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name','text')
->add('author', 'sonata_type_model', array('query' => ....), array('edit' => 'inline'))
;
}
最佳答案
好的,我知道了!
/**
* @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))
;
}