一个User
有一个Package
与它相关联。许多用户可以引用相同的程序包。User
没有Package
定义就不能存在。User
应该拥有这种关系。关系是双向的,因此其中Package
有零个或多个用户。
这些要求导致ManyToOne
关系为User
和OneToMany
的关系Package
的教义。然而package_id
在user
表(也就是外键)允许null
值。我尝试设置nullable=false
但命令:
php app/console doctrine:generate:entities DL --path="src" --no-backup
说nullable
该关系没有属性ManyToOne
。我想念的是什么?
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;
}
编辑:解决。请注意,这是错误的(请注意双引号):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
这是正确的:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_id
是,该列仍标记为Null-是,默认值为NULL。任何帮助深表感谢。