所以...我基本上按照practical symfony book,遇到了下面的问题。 我正确地(我猜)安装了sfGuardPlugin,建立了模型,sqls等,创建了用户并试图用输入的用户名和密码登录。在symfony 1.4中访问扩展类
我得到了以下错误消息:
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);
}
}
这就是失踪的功能!
那么 - 什么是错的?为什么它不起作用? 我已经尝试了所有与谷歌解决方案,但没有一个工作:/
我想你已经清除你的缓存?重建所有lib等。? – j0k 2012-07-11 10:22:18
显然我这样做...清除缓存与symfony cc,以及手动删除文件夹 – khartvin 2012-07-11 10:29:43
也许有两个sfGuardUserPeer类。尝试在所有代码中搜索“class sfGuardUserPeer”。确保你正在向一个正确的方向发展(也可以反序列化搜索类文件路径的cache/project_autoload.cache文件)。 – glerendegui 2012-07-11 18:54:44