gpt4 book ai didi

symfony - 覆盖用户管理表单

转载 作者:行者123 更新时间:2023-12-02 11:21:29 26 4
gpt4 key购买 nike

我正在尝试覆盖 SonataUser/Admin/Model/UserAdminconfigureFormFields() 因为我需要从管理表单中删除一些默认字段。因此,我已将文件 vendor/bundles/Sonata/UserBundle/Admin/Model/UserAdmin.php 复制到我的包 app/Application/Sonata/UserBundle/Admin/Model/UserAdmin.php 并修改它。然后将其声明为服务:

# app/application/Sonata/UserBundle/Resources/config/services.yml
services:
application_user.registration.form.type:
class: Application\Sonata\UserBundle\Admin\Model\UserAdmin
arguments: [%sonata_user.model.user.class%]
tags:
- { name: form.type, alias: application_user_admin }

现在问题:我做得对吗?我如何告诉奏鸣曲管理员使用它?

最佳答案

重写类应该在 config.yml 中设置:

# app/config/config.yml
sonata_user:
admin:
user:
class: MyCompany\UserBundle\Admin\Model\UserAdmin

扩展原来的UserAdmin:

namespace MyCompany\UserBundle\Admin\Model;

use Sonata\AdminBundle\Form\FormMapper;

class UserAdmin extends \Sonata\UserBundle\Admin\Model\UserAdmin
{

protected function configureFormFields(FormMapper $formMapper)
{
// new logic
}

}

当然,更改类名MyCompany\UserBundle\Admin\Model\UserAdmin以反射(reflect)您的包结构。

关于symfony - 覆盖用户管理表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com