最佳答案
一个 User
有一个与之相关联的 Package
。许多用户可以引用同一个包。如果没有定义 Package
,User
就不能存在。User
应该拥有这个关系。关系是双向的,因此 Package
中有零个或多个用户。
这些要求导致了原则2中 Package
的 User
和 OneToMany
的 ManyToOne
关系。但是 user
表中的 package_id
(即外键)允许 null
值。我试过设置 nullable=false
但是命令:
php app/console doctrine:generate:entities DL --path="src" --no-backup
说明关系 ManyToOne
.我错过了什么?没有属性 nullable
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Package", inversedBy="users")
*/
private $package;
}
class Package
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="package")
*/
private $users;
}