Php 如何在自己的控制器和模板中实现SonataAdmin表单

Php 如何在自己的控制器和模板中实现SonataAdmin表单,php,symfony,symfony-sonata,sonata-admin,Php,Symfony,Symfony Sonata,Sonata Admin,如何使用不同的逻辑和模板将SonataAdmin表单和列表实现到自己的控制器中?我建议您看看Sonata\AdminBundle\Controller\CRUDController,这里有您需要的一切: 假设您有一个“用户”实体的管理员,该管理员的服务名称为“myapp.admin.User”(在services.xml或类似文件中) 在控制器中,您可以通过以下方式获得admin类: $user_admin = $this->container->get('sonata.admin.

如何使用不同的逻辑和模板将SonataAdmin表单和列表实现到自己的控制器中?

我建议您看看Sonata\AdminBundle\Controller\CRUDController,这里有您需要的一切:

假设您有一个“用户”实体的管理员,该管理员的服务名称为“myapp.admin.User”(在services.xml或类似文件中)

在控制器中,您可以通过以下方式获得admin类:

$user_admin = $this->container->get('sonata.admin.pool')
        ->getAdminByAdminCode('myapp.admin.user');
您可以通过以下方式获取管理员表单:

$form = $user_admin->getForm();
如果查看该类中的listAction()方法,您可以看到如何获取用于构建列表的datagrid:

$datagrid = $user_admin->getDatagrid();
对于模板,您可以在Sonta/AdminBundle/Resources/views/CRUD中扩展或调整模板以用于列表和编辑操作