![](/img/trans.png)
[英]Symfony FOSUserBundle Cannot instantiate abstract class FOS\UserBundle\Model\User
[英]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.