Отношение доктрины потеряно при обновлении записи - PullRequest
0 голосов
/ 20 июля 2010

Я использую Symfony и Doctrine, и у меня несколько хороших отношений «многие ко многим».

Но есть таблица, называемая «документ», которая содержит документы, которые могут относиться к нескольким видам содержимого, и имеет собственный раздел администратора.

Всякий раз, когда я обновляю документ, все его связи с остальными таблицами теряются.

Я некоторое время гуглял, но не мог найти причину.

¿Вы когда-нибудь испытывали что-то подобное? ¿Что я могу сделать?

Это схема, но в MySQL ограничения не существуют.

Document:
  actAs: [Timestampable]
  columns:
    title: string(255)
    filename: string(255)
    owner_id: integer
Productar:
  actAs:
    Timestampable: ~
    I18n:
      fields: [title, tagline, intro, body]
  columns:
    title: string(255)
    tagline: clob
    intro: clob
    body: clob
    video: string(255)
    header_image: string(255)
    small_image: string(255)
  relations:
    Documents:
      class:        Document
      local:        productar_id
      foreign:      document_id
      type:         many
      refClass:     ProductarDocument
      onDelete:     SET NULL
ProductarDocument:
  actAs: [Timestampable]
  columns:
    productar_id:
      type: integer
      fixed: false
      unsigned: false
      primary: true
      autoincrement: false
    document_id:
      type: integer
      fixed: false
      unsigned: false
      primary: true
      autoincrement: false
  relations:
    Productar:
      class:        Productar
      local:        productar_id
      foreign:      id
      onDelete:     SET NULL  # Also tried with CASCADE
    Document:
      class:        Document
      local:        document_id
      foreign:      id
      onDelete:     SET NULL  # Also tried with CASCADE

Ответы [ 2 ]

0 голосов
/ 07 августа 2010

Я нашел проблему:

Классы форм, которые изначально создавались вместе с модулем / document / web до того, как в модели существовали отношения. Позже, отношения были добавлены и классы формы и модели были сгенерированы снова, но не веб-модуль (или фактическое представление для формы), поэтому отношения ожидались, но не были получены классом формы, и запись получалась обновляется без них при вызове метода $ form-> save ().

Я исправил это, отключив виджет «productar_list» и валидатор в классе формы документа. Это больше не ожидается и не сохраняется. Сейчас отношения не обновляются.

0 голосов
/ 20 июля 2010

В phpmyadmin нажмите на отношения и найдите действия onEdit

...