繁体   English   中英

无法将字段添加到我的用户类(Fos_UserBundle)

[英]Can't add fields to my user class (Fos_UserBundle)

我正在尝试修改用户类(FOS_UserBundle)。 我有一个单独的公司表格,当创建用户时,我希望它与这些公司之一绑定。 最终,我将不得不发现在company表中创建条目时如何自动创建用户,但是现在我只是尝试提供测试数据。

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
    * @var object BizTV\BackendBundle\Entity\company
    *  
    * @ORM\ManyToOne(targetEntity="BizTV\BackendBundle\Entity\company")
    * @ORM\JoinColumn(name="company", referencedColumnName="id")
    */
    protected $company; 

在我的构造中,我试图设定

$this->company = 1;

但是,由于它需要一个对象,所以这是行不通的,所以我实例化了公司对象,并用伪数据填充了它...

$dummy = new company;
$dummy->setActive(true);
$dummy->setCompanyName('myCompany');
$dummy->setId(1);

$this->company = $dummy;

然后我收到一条有关发现新实体的错误消息...

通过关系'BizTV \\ UserBundle \\ Entity \\ User#company'找到了一个新实体,该关系未配置为级联实体的持久操作:BizTV \\ BackendBundle \\ Entity \\ company @ 0000000018a5279000000000049c7b23。 显式持久化新实体,或在关系上配置级联持久化操作。 如果您找不到导致问题的实体,请实施“ BizTV \\ BackendBundle \\ Entity \\ company #__ toString()”以获取线索。

将级联的持久性选项添加到User :: $ company属性注释中:

/**
 * @ORM\ManyToOne(targetEntity="BizTV\BackendBundle\Entity\company", cascade={"persist"})
 * @ORM\JoinColumn(name="company", referencedColumnName="id")
 */
protected $company;

您可以在此处找到相关文档: http : //docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-associations.html#transitive-persistence-cascade-operations

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM