It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。
已关闭8年。
我正在扩展Sonata用户捆绑包,并在新的用户实体中创建一些额外的字段。这些字段只会在用户下方的Sonata管理区域内更新,因此不需要在编辑配置文件表单中使用。我在通过Sonata用户管理器更新这些字段时遇到了麻烦,并尝试了几种不同的方法来扩展/实现Application\Sonata\UserBundle中的该类。以前有没有人遇到过这个问题,并且可以给我提供扩展新User实体的最简洁方法的教程或分步过程?
3.配置实体
然后,转到您的
4.覆盖UserAdmin类
然后,您需要创建一个新的UserAdmin类。为此,只需在包中创建一个新的
5.替换旧的UserAdmin类
然后,您需要确保Sonata使用新的UserAdmin类。您只需要将
已关闭8年。
我正在扩展Sonata用户捆绑包,并在新的用户实体中创建一些额外的字段。这些字段只会在用户下方的Sonata管理区域内更新,因此不需要在编辑配置文件表单中使用。我在通过Sonata用户管理器更新这些字段时遇到了麻烦,并尝试了几种不同的方法来扩展/实现Application\Sonata\UserBundle中的该类。以前有没有人遇到过这个问题,并且可以给我提供扩展新User实体的最简洁方法的教程或分步过程?
最佳答案
1.创建一个新的捆绑包
类似于AcmeUserBundle。创建它并像平常一样注册。
2.创建一个新的用户实体
然后创建一个User
和Group
实体,该实体扩展了Sonata\UserBundle\Entity\BaseUser
和Sonata\UserBundle\Entity\BaseGroup
。您还应该添加主键的配置,例如:
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
3.配置实体
然后,转到您的
app/config/config.yml
文件并配置以下新实体:sonata_user:
class:
user: Acme\UserBundle\Entity\User
group: Acme\UserBundle\Entity\Group
4.覆盖UserAdmin类
然后,您需要创建一个新的UserAdmin类。为此,只需在包中创建一个新的
UserAdmin
类,扩展Sonata\UserBundle\Admin\Model\UserAdmin
并覆盖如下方法:namespace Acme\UserBundle\Admin;
use Sonata\UserBundle\Admin\Model\UserAdmin as SonataUserAdmin;
class UserAdmin extends SonataUserAdmin
{
/**
* {@inheritdoc}
*/
protected function configureFormFields(FormMapper $formMapper)
{
parent::configureFormFields($formMapper);
$formMapper
->with('new_section')
->add(...)
// ...
->end()
;
}
}
5.替换旧的UserAdmin类
然后,您需要确保Sonata使用新的UserAdmin类。您只需要将
sonata.user.admin.user.class
参数设置为新类就可以了!# app/config/config.yml
parameters:
sonata.user.admin.user.class: Acme\UserBundle\Admin\UserAdmin
关于php - 扩展Sonata用户捆绑包并添加新字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15621993/
10-10 05:27