symfony - sfDoctrineGuard - загрузка данных о приборах - PullRequest
0 голосов
/ 26 апреля 2011

В настоящее время я использую sfDoctrineGuardPlugin и sfForkedDoctrineApplyPlugin, а когда я перезагружаю данные, используя doctrine:data-load

Я получаю следующее:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails ( my_db . sf_guard_user_profile , CONSTRAINT sf_guard_user_profile_user_id_sf_guard_user_id_1 FOREIGN KEY ( user_id ) REFERENCES sf_guard_user ( ID ) ON DELETE CASCADE)

Это действительно раздражает, так как я не могу загрузить ни одну из записей, которые есть в моих приборах.

Я скопировал схему из sfForkedDoctrineApplyPlugin и немного расширил ее:

sfGuardUserProfile:
  actAs:
    Timestampable: ~
  columns:
    user_id:
      type: bigint(20)
      notnull: true
      default:
      unsigned: false
      primary: false
      unique: false
      autoincrement: false
    email_new:
      type: string(255)
      unique: true
    firstname:
      type: string(255)
    lastname:
      type: string(255)
    city:
      type: varchar(255)
    validate_at:
      type: timestamp
    validate:
      type: string(33)
  relations:
    User:
      class: sfGuardUser
      foreign: id
      local: user_id
      type: one
      onDelete: cascade
      foreignType: one
      foreignAlias: Profile
  indexes:
    validate:
      fields: [validate]

Кто-нибудь знает, как это исправить?

Спасибо

Ответы [ 4 ]

1 голос
/ 27 апреля 2011
user_id:
  type: bigint(20)

не совместимо с sfGuardUser

sfGuardUser:
  type: integer()
0 голосов
/ 03 мая 2011

Хорошо, поэтому мне пришлось добавить interger (11) ко всем таблицам в sfDoctrineGuardPlugin.Немного хакерский, но теперь работает

0 голосов
/ 26 апреля 2011

Проверьте тип идентификатора пользователя.Он должен быть таким же, как sfGuardUserProfile user_id: bigint (20)

0 голосов
/ 26 апреля 2011

В ваших приспособлениях для sfGuardUserProfile вам нужно указать ссылку sfGuardUser, поскольку у вас есть внешняя ссылка на нее, которая не может быть нулевой

sfGuardUserProfile:
    bob_profile:
        sfGuardUser: bob  # Set the link
        firstname: bob
        # bobs_profile fixtures


sfGuardUser:
    bob:
       # bobs fixtures
...