所以...我基本上按照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