[英]Fos UserBundle with yaml - doctrine schema update
我想使用FOSUserBundle
,安装它并首先使用注释对其进行设置,但是因为我有其他实体,所以我选择了yaml。
我按照文档中的说明进行操作,创建了yaml文件,并添加了一些我需要的字段。 我生成了实体本身,然后在php文件中扩展了BaseUser
类。
该部分正在工作,因为当我第一次想要更新SQL时,它抛出了将错误更改为protected或public的错误,但是在更新之后,基本FOS字段不在数据库中。
这是User.orm.yml
Plastic\PublicBundle\Entity\User:
type: entity
lifecycleCallbacks:
prePersist: [setCreated, setModified]
preUpdate: [setModified]
oneToMany:
albums:
targetEntity: Album
mappedBy: user
images:
targetEntity: Image
mappedBy: user
table: users
id:
id:
type: integer
generator:
strategy: AUTO
fields:
firstName:
type: string
length: 50
lastName:
type: string
length: 50
gender:
type: boolean
dateOfBirth:
type: date
还有User.php实体和第一个相关部分:
<?php
namespace Plastic\PublicBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
/**
* User
*/
class User extends BaseUser
{
/**
* @var integer
*/
protected $id;
/**
* @var string
*/
private $firstName;
/**
* @var string
*/
private $lastName;
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->albums = new \Doctrine\Common\Collections\ArrayCollection();
$this->images = new \Doctrine\Common\Collections\ArrayCollection();
}
在我的ORM config.yml中,自动映射设置为true。
代替
use FOS\UserBundle\Model\User as BaseUser;
尝试使用
use FOS\UserBundle\Entity\User as BaseUser;
即,因为您正在使用orm,所以必须使用Entity基类,而不是Model基类。 我也被卡住了一段时间,但是以上更改使事情再次起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.