0

sfDoctrineGuardPlugin を有効にしたので、myUserクラスを自分のクラス extends に変更しまし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

このプロパティにアクセスするにはどうすればよいですか?

4

1 に答える 1

5

あなたは2つのことを混同しています:myUser、別名。セッション、および教義のユーザー、別名。ユーザーのデータベース レコード。

symfony プロジェクトでは、myUser クラスは現在のセッション ($_SESSION スーパーグローバルのラッパー) を表します。

経由でコントローラーのデータベース レコードにアクセスできる$this->getUser()->getGuardUser()ため、リレーションは として機能し$this->getUser()->getGuardUser()->Personnageます。

Gentle Introduction to symfony book のユーザーセッションに関する部分も参照してください。

于 2011-06-02T11:38:23.707 に答える