我通过创建Application\Sonata\UserBundle\Admin\Model\UserAdmin
和扩展管理员扩展了Sonata UserAdmin,然后注释掉了一些我不想显示的字段。
来自config.yml中的sonata_user:
admin: # Admin Classes
user:
class: Application\Sonata\UserBundle\Admin\Entity\UserAdmin
controller: SonataAdminBundle:CRUD
translation: SonataUserBundle
在/admin/sonata/user/user/{id}/edit
显示的表单模板在哪里以及覆盖它所需的步骤是什么?
答案 0 :(得分:0)
表单的模板位于vendor / Sonata / ... Resources / views
中有两种方法可以覆盖这些模板。最简单的方法是通过在app/Resources/PATH/view.html.twig
创建单个模板来覆盖该模板。
PATH =>访问供应商中覆盖的视图的路径,您必须重新创建它。我说view.html.twig
,但它可以是另一个名字,只需要是相同的。
与使用UserAdmin实体的方式相同,但是在资源中。
另一种方法是你做了自己的捆绑包,这将是你的一个供应商捆绑的儿子。
要获得更多信息,FOSUserBundle文档非常适合如何覆盖父包中的内容。 检查一下:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_templates.md 还有关于如何覆盖表格和文件的文档。控制器。
祝你好运!答案 1 :(得分:0)
覆盖UserAdmin类中的getTemplate
方法:
public function getTemplate($name)
{
switch ($name) {
case 'edit':
return 'Application\Sonata:User:edit.html.twig';
break;
default:
return parent::getTemplate($name);
break;
}
}
并创建将覆盖Sonata模板的Application \ Sonata \ Resources \ views \ User \ edit.html.twig:
{# edit.html.twig #}
{% extends 'SonataAdminBundle:CRUD:edit.html.twig' %}
现在您可以根据需要覆盖SonataAdminBundle:CRUD:edit.html.twig
的块。