Symfony 符号主义多重关系
我对Symfony和Doctrine很陌生所以 在我的应用程序中,我有以下实体: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
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,可以省略这些字段,但数据库中的关系将存在。谢谢!帮了我很多忙。。。现在我只需要了解一下数组集合,我很乐意继续下去-