2012-02-17 3 views
0

私はsymfony 1.4(Propelの)とsfGuardプラグインをインストールしようとしています。 私はそれをどのようにインストールすることができ、うまくいきました(登録、ログイン、ログアウトができました)。symfonyのコマンドでsfGuardPluginエラー着信/コマンドでsfGuardPlugin/libに/ユーザー/ sfGuardSecurityUser.class.php

しかし、私は再び私のキャッシュをクリアしたら、私がログインすることはできませんよ、私はこのエラーを取得:

PHP Fatal error: Call to a member function getId() on a non-object in plugins/sfGuardPlugin/lib/user/sfGuardSecurityUser.class.php on line 81, referer: http://localhost/index.php/login

私は私が間違って何をしたかわからないけど、何とか私はそれが再び仕事を得る傾けます。私はプラグインをアンインストールして再インストールしようとしました。同じエラーです。

私は、ドキュメントごとに、私ののapp.ymlsettings.ymlファイルのrouting.ymlを変更しました。またapps/myapp/lib/myUser.class.phpsfGuardSecurityUserに変更しました。

フォーム提出は、ファイルplugins/sfGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.phpを入力し、$this->getUser()->signIn($values['user'],...)ファンクションコールでform->isValidの後に失敗します。

$values['user']がフォームから正しい値を持つことを確認しました。 signIn関数は、$this->setAttribute('user_id', $user->getId(), 'sfGuardSecurityUser'); を呼び出し、そのオブジェクトは$userをオブジェクトとして取得できません。それでもフォームに渡された「ユーザー名」はそのままです。

何か助けていただければ幸いです。 ありがとう!

答えて

0

I verified that $values['user'] has the correct value from the form.

正確な値は正しいと思いますか?それはあなたがあなた自身のフォームを作成したような音とユーザ名であることをuserフィールドを期待している実際にはそのuserのような配列であることを期待したときに、:

:本質的には

$user = Array (
    'username' => 'Username value from form', 
    'password' => 'password value from form' 
} 

フォームは次のようになります。

<form> 
    <input type="text" id="user" name="user[username]" /> 
    <input type="password" id="password" name="user[password]" /> 
</form> 
+0

いいえ、私は自分のフォームを作成していない、私はプラグインに付属のsfGuardFormSigninを使用しています。私が参照していたコード(失敗した場所)、$ values ['user']もプラグインの一部ですが、私はそれを変更しませんでした。 –

+0

ここに私が参照しているプラ​​グインコードがあります:http://trac.symfony-project.org/browser/plugins/sfGuardPlugin/branches/1.3/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php line 45 –

0

いくつかのデバッグとゼロからの起動の後、デフォルトのsfGuardFormSignin.class.phpを上書きしてしまったように見えますが、これは$ userクラスを無効にして、関数呼び出しが失敗していました。