symfony2: нельзя вставить в форму слияния один-к-одному

0

У клиента есть взаимно-однозначное отношение с субъектом кредитования. Когда я пытаюсь вставить, я получаю следующую ошибку:

*

Объект типа Jobeet\JobBundle\Entity\Credit не имеет назначенного идентификатора для поля "id". Стратегия генерации идентификатора для этого объекта требует, чтобы поле ID было заполнено до вызова EntityManager # persist(). Если вы хотите автоматически сгенерировать идентификаторы, вам нужно соответствующим образом скорректировать сопоставление метаданных.

*

Что мне не хватает?

Customer.orm.yml

type: entity
    table: customer
    id:
        id:
            type: integer
            generator: { strategy: AUTO }
    fields:
        name:
            type: string
            length: 255
            nullable: true
        address:
            type: string
            length: 255

    oneToOne:
        credit:
            targetEntity: Credit
            mappedBy: customer
            cascade: [persist]

Credit.orm.yml

type: entity
table: credit
id:
    id:
        type: integer
        generator: { strategy: AUTO }
fields:
    customer_id:
        type: integer
        unique: true
        nullable: false
    credit_name:
        type: string
        length: 255
        nullable: true
    credit_desc:
        type: string
        length: 255
        nullable: true

oneToOne:
    customer:
        targetEntity: Customer
        inversedBy: credit
        joinColumn:
            name: customer_id
            referencedColumnName: id

CustomerType.php

class CustomerType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
            ->add('address')
            ->add('credit', new CreditType())
        ;
    }
}
Теги:
entity-framework
doctrine

1 ответ

0

Попробуйте изменить Credit.orm.yml на

type: entity
    table: credit
    id:
        id:
            type: integer
            unique: true
            column: other_non_conflict_column_name
...
  • 0
    Та же проблема :(
  • 0
    Когда я продолжаю настаивать, я получаю «ЗНАЧЕНИЕ INSERT INTO (customer_id, credit_name, credit_desc) VALUES (?,?,?)» С params [null, «adfadfasdf», null] Нарушение ограничения целостности: 1048 Столбец «customer_id» не может быть пустым Я получаю нулевое значение в id.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню