Symfony 符号主义多重关系

Symfony 符号主义多重关系,symfony,doctrine,foreign-keys,mapping,Symfony,Doctrine,Foreign Keys,Mapping,我对Symfony和Doctrine很陌生所以 在我的应用程序中,我有以下实体: class Company /** * @ORM\Id() * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(name="name", type="string", length=255) * @ORM\OneToMany(targetEn

我对Symfony和Doctrine很陌生所以

在我的应用程序中,我有以下实体:

class Company

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


/**
 * @ORM\Column(name="name", type="string", length=255)
 * @ORM\OneToMany(targetEntity="\UserBundle\Entity\User", mappedBy="company")
 * @ORM\OneToMany(targetEntity="\AppBundle\Entity\Account", mappedBy="company")
 */
protected $name;

public function __construct()
{
    $this->name = new ArrayCollection();
}
UserClass FOSUserBundle:

class User extends BaseUser

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

/**
 * @var string
 *
 * @ORM\Column(name="firstname", type="string", length=255)
 */
protected $firstname;

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


/**
 * @ORM\ManyToOne(targetEntity="\AppBundle\Entity\Company")
 * @ORM\JoinColumn(name="company_id", referencedColumnName="id")
 */
protected $company;
和账户:

class Account

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var integer
 *
 * @ORM\Column(name="num", type="integer")
 */
private $num;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
private $name;


/**
 * @ORM\ManyToOne(targetEntity="\AppBundle\Entity\Company")
 * @ORM\JoinColumn(name="company_id", referencedColumnName="id")
 */
protected $company;
有以下关系

一个公司->多个用户,多个用户->一个公司; 一个公司->多个账户;多账户->一家公司

是否有可能像我那样通过以下方式生成关系:

 * @ORM\Column(name="name", type="string", length=255)
 * @ORM\OneToMany(targetEntity="\UserBundle\Entity\User", mappedBy="company")
 * @ORM\OneToMany(targetEntity="\AppBundle\Entity\Account", mappedBy="company")
->两个目标实体


谢谢你的帮助…

这绝对是错误的。如果您不希望从公司到用户和帐户的任何链接,则可以省略此字段。这种关系是单向的。您将拥有从用户和帐户到公司的链接

只需忽略错误的映射:

/**
 * @ORM\Column(name="name", type="string", length=255)
 */
protected $name;
如果要创建指向与公司相关的用户和帐户的链接,则需要为这些ArrayCollections定义如下字段:

/**
 * @ORM\OneToMany(targetEntity="\UserBundle\Entity\User", mappedBy="company")
 */
protected $users;

谢谢你的快速回复!我应该为我想要关联的每个实体定义字段,这对吗?用户和帐户?每个实体都有一个新的arrayCollection?是的。但如果您不需要此ArrayCollections,可以省略这些字段,但数据库中的关系将存在。谢谢!帮了我很多忙。。。现在我只需要了解一下数组集合,我很乐意继续下去-