1

我不想使用 Sonata User 捆绑包提供的一些默认字段。例如 facebook、gplus 或 twitters 字段。

我使用 Easy-Extends 扩展了 Application\Sonata\UserBundle 中的 SonataUserBundle。

并创建了一个扩展 BaseUser 的新 User 实体:

class User extends BaseUser

因为我使用注释,所以我删除了 xml 学说配置。

所以它确实可以识别我的自定义字段,例如“城市”和“地址”。

但是我拥有 BaseUser 的所有字段,我怎样才能摆脱不必要的字段?

<?php
namespace Application\Sonata\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user_user")
 */
class User extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=64, nullable=false, name="city")
     */
    protected $city;

    /**
     * @ORM\Column(type="string", length=255, nullable=false, name="address")
     */
    protected $address;

}
4

1 回答 1

1

Sonata UserBundle 似乎扩展了 FOSUserBundle:

use FOS\UserBundle\Entity\User as AbstractedUser;
use Sonata\UserBundle\Model\UserInterface;

abstract class User extends AbstractedUser implements UserInterface

所以,我认为你应该能够做到这一点;而不是扩展 Sonata User,扩展 FOSUser 并实现 UserInterface。这样,您应该能够摆脱不需要的字段,只要它们在奏鸣曲的用户模型中。

于 2015-02-12T11:23:44.070 回答