だから...私は基本的に実用的なsymfonyの本に従い、次の問題に遭遇しました。私は(おそらく)sfGuardPluginを適切にインストールし、モデル、sqlsなどを構築し、ユーザーを作成し、入力されたユーザー名とパスワードでログインしようとしました。
次のエラーメッセージが表示されました。
Fatal error: Call to undefined method sfGuardUserPeer::retrieveByUsername() in /***/plugins/sfGuardPlugin/lib/validator/sfGuardValidatorUser.class.php on line 53
sfGuardValidatorUserクラスの問題のある部分は次のようになっているため、私には非常に奇妙に見えます。
// user exists?
if ($user = sfGuardUserPeer::retrieveByUsername($username))
{
// password is ok?
if ($user->getIsActive() && $user->checkPassword($password))
{
return array_merge($values, array('user' => $user));
}
}
sfGuardUserPeerには空のクラスがあります。
class sfGuardUserPeer extends PluginsfGuardUserPeer
{
}
これはPluginsfGuardUserPeerを拡張するので、私もチェックアウトしました。
class PluginsfGuardUserPeer extends BasesfGuardUserPeer
{
public static function retrieveByUsername($username, $isActive = true)
{
$c = new Criteria();
$c->add(self::USERNAME, $username);
$c->add(self::IS_ACTIVE, $isActive);
return self::doSelectOne($c);
}
}
それは欠けている機能です!
だから-何が問題なのですか?なぜそれが機能しないのですか?私はすでにグーグルで見つけたすべての解決策を試しましたが、どれもうまくいきません:/