symfony: myUser class => Как получить доступ к пользовательскому свойству - PullRequest
0 голосов
/ 02 июня 2011

Я включил sfDoctrineGuardPlugin, поэтому я изменил класс myUser, чтобы мой класс расширялся sfGuardSecurityUser.

Я переопределил схему sfGuardUser, чтобы добавить собственное отношение

Personnage:
      local: id
      foreign: user_id
      type: one
      onUpdate: CASCADE
      onDelete: CASCADE

Когда генерируются модели, если перейти на BasesfGuardUser.class.php, я вижу в комментариях PHPDoc мое отношение создано и добавлено свойство Personnage.

 * @property Personnage $Personnage

Но я не понимаю, когда я пытаюсь получить доступ к этому свойству, я не могу.

В контроллере:

$user = $this->getUser();
$user->Personnage;

В поле зрения:

echo $sf_user->Personnage

И ошибка:

Notice: Undefined property: myUser::$Personnage

Как я могу получить доступ к этой недвижимости?

1 Ответ

5 голосов
/ 02 июня 2011

Вы смешиваете две вещи: myUser, иначе. сеанс и учение пользователя, ака. запись базы данных пользователя.

В проектах symfony класс myUser представляет текущий сеанс (оболочка над суперглобальным $ _SESSION).

Вы можете получить доступ к записи базы данных в вашем контроллере через $this->getUser()->getGuardUser(), поэтому ваше отношение будет работать как $this->getUser()->getGuardUser()->Personnage.

Также см. Часть, касающуюся пользовательских сессий из книги "Нежное введение в Symfony".

...