Пользователь
имеет один Пакет
, связанный с ним. Многие пользователи могут ссылаться на один и тот же пакет. Пользователь
не может существовать без определенного пакета
. Пользователь
должен владеть отношением. Отношение является двунаправленным, поэтому Package
имеет в себе ноль или более пользователей.
Эти требования приводят к отношению ManyToOne
для User
и OneToMany
отношения Package
в Doctrine 2. Однако package_id
в таблице user
(то есть с внешним ключом) допускает нулевые
значения. Я пытался установить 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)