Doctrine 2 не может использовать nullable=false в отношении manyToOne?

Пользовательимеет один Пакет, связанный с ним. Многие пользователи могут ссылаться на один и тот же пакет. Пользовательне может существовать без определенного пакета. Пользовательдолжен владеть отношением. Отношение является двунаправленным, поэтому 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)
107
задан j0k 20 September 2012 в 12:10
поделиться