Symfony 编辑默认用户实体
我使用的是SonataUserBundle,没有扩展FOSUserBundle。我想更改默认的SonataUser实体,并添加或删除一些字段 以下是使用SonateAsysExtendSbundle创建的默认用户实体Symfony 编辑默认用户实体,symfony,sonata-admin,sonata-user-bundle,Symfony,Sonata Admin,Sonata User Bundle,我使用的是SonataUserBundle,没有扩展FOSUserBundle。我想更改默认的SonataUser实体,并添加或删除一些字段 以下是使用SonateAsysExtendSbundle创建的默认用户实体 <?php /** * This file is part of the <name> project. * * (c) <yourname> <youremail> * * For the full copyright and
<?php
/**
* This file is part of the <name> project.
*
* (c) <yourname> <youremail>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Application\Sonata\UserBundle\Entity;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
/**
* This file has been generated by the Sonata EasyExtends bundle.
*
* @link https://sonata-project.org/bundles/easy-extends
*
* References :
* working with object : http://www.doctrine-project.org/projects/orm/2.0/docs/reference/working-with-objects/en
*
* @author <yourname> <youremail>
*/
class User extends BaseUser
{
/**
* @var int $id
*/
protected $id;
/**
* Get id
*
* @return int $id
*/
public function getId()
{
return $this->id;
}
public function __toString()
{
if (parent::getFirstname() != null){
return parent::getFullname();
} else {
return parent::getUsername();
}
}
}
我认为您可以像添加任何其他实体一样添加字段、方法和映射,但恐怕您无法删除字段(但您可以将其隐藏在自定义管理员中)。映射文件在您的应用程序的目录中。好的,找到了解决方案,如果有人有这个问题,这可以解决
程序如下:
通过SonataEasyExtends
扩展用户
实体后,删除条令目录。默认情况下,您可以在Application/Sonata/UserBundle/Resources/config/doctor
配置用户
实体以满足您的需求,这也在您的应用程序
文件夹中。在添加或删除任何内容之前,您的用户
实体必须如下所示:
生成管理类,只需使用app/console-sonata:Admin:Generate-Application/sonata/UserBundle/Entity/User
覆盖管理类,轻松将UserAdmin.php
从Sonata\UserBundle\Admin\Model
复制并粘贴到新创建的管理类
可选
通过将UserAdmin:182
从if($this->getSubject()&&!$this->getSubject()->hasRole('ROLE\u SUPER\u ADMIN'))
更改为if($this->getSubject()&&$this->getSubject()->hasRole('ROLE\u SUPER\u ADMIN'))
谢谢,但是在编辑User.php实体并调用doctrine:generate:entities应用程序之后,没有任何更改!我做错了什么?我不知道,我没有使用原则:生成:实体
namespace Application\Sonata\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
/**
* User
*
* @ORM\Table(name="fos_user_user")
* @ORM\Entity
*/
class User extends BaseUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* Get id
*
* @return int $id
*/
public function getId()
{
return $this->id;
}
public function __toString()
{
if (parent::getFirstname() != null){
return parent::getFullname();
} else {
return parent::getUsername();
}
}
}