在 Admin 类的 SonataAdminBundle 中,我无法创建ManyToMany 字段上的 orderBy https://github.com/sonata-project/SonataAdminBundle/issues/328.
例如作者和书籍。作者可以有很多书,书也可以有很多作者。在上面的链接中,写着我可以使用表单字段的查询。因此,我可以准备一个查询来选择作者并按姓名对他们进行排序。如何管理这个?如何获取 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))
;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)