Как объявить Наследование Доктрин в файле fixtures.yml? - PullRequest
1 голос
/ 04 октября 2010

У меня проблема с наследованием Doctrine в моем fixtures.yml файле Symfony.

Представьте себе следующее:

NewsAuthor:
  inheritance:
    extends: sfGuardUser
    type:    simple

Теперь я хочу объявить пользователя по умолчанию охранником User_admin файла фикстур sfDoctrineGuardPlugin , который является автором первой фиктивной статьи моей модели новостей.Но как это сделать?

Я попробовал следующее:

NewsAuthor:
  AuthorAdmin:
    sfGuardUser: User_admin

Но тогда я получаю эту ошибку задачи doctrine:data-load:

Unknown record property / related component "sfguarduser" on "NewsAuthor"

Я используюSymfony 1.4.8 с Doctrine 1.2.3.

Спасибо в ожидании,Лемми

1 Ответ

1 голос
/ 04 октября 2010

Вы неправильно понимаете, как работает наследование Доктрины. При простом наследовании NewsAuthor не будет иметь ссылку на sfGuardUser, у него будут все столбцы и отношения, которые есть у sfGuardUser, плюс те, которые вы определяете. Наследование - это плохой подход.

Вместо этого вы хотите, чтобы у NewsAuthor была ссылка на sfGuardUser. Ваша схема в этом случае будет выглядеть так:

NewsAuthor:
  columns:
    user_id:
      type: integer(4)
      notnull: true
      unique: true #if one-to-one correspondence
  relations:
    User:
      class: sfGuardUser
      local: user_id
      foreignType: one

Тогда ваши приборы выглядят так же, как и раньше:

NewsAuthor:
  AuthorAdmin:
    sfGuardUser: User_admin

Затем вы можете получить доступ к объекту sfGuardUser объекта NewsAuthor через $newsAuthor->User, аналогично, вы можете получить доступ к NewsAuthor в экземпляре sfGuardUser через $user->NewsAuthor.

...