От 1 до 1..0 взаимосвязь во встроенной форме с учением - PullRequest
2 голосов
/ 28 января 2012

Один пользователь может иметь только 1 элемент или ни одного. (1-1..0 отношения)

Я пытаюсь сделать это в symfony2 с доктриной.

Я установил отношения 1 к 1, все довольно просто. Но как я могу указать доктрине, что когда я хочу создать пользователя, элемент может быть нулевым? (и не вставлять новую строку, а оставить id_item пустым)

Вот что у меня есть:

// User Class
     /**
     * 
     * @ORM\OneToOne(targetEntity="Items", cascade={"persist"})
     * @ORM\JoinColumn(name="id_item", referencedColumnName="id", nullable=true)
     * 
     * @var SOA\AXBundle\Entity\Items $userItem
     * @Assert\Type(type="SOA\AXBundle\Entity\Items")
     */ 
    protected $userItem;

И, конечно, я создал класс ItemsTypeForm и добавил тип в свой класс userstypeform:

// UsersTypeForm Class
     ->add('userItem', new \SOA\AXBundle\Form\ItemsTypeForm())

Когда я добавляю нового пользователя, все идет хорошо. Пользователь вставляется так же, как и элемент. Но когда я пытаюсь добавить пользователя, у которого нет элемента ( поля элемента пользователя пустые ), я получаю следующую ошибку:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null

Попытка вставить элемент с нулевыми значениями.

Хотя я могу жить с отношениями 1 к 1, я бы хотел научиться строить отношения с 1 по 1..0.

отредактировано с реальной проблемой. изменения выделены жирным шрифтом.

1 Ответ

0 голосов
/ 29 января 2012

Аннотация Assert вызывает проблему. Вы должны установить, что нулевое значение допустимо в Assert.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...