поэтому ... Я в основном следую за 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);
}
}
что недостающая функция!
так - что не так? почему он не работает? Я уже пробовал все решения, найденные с помощью Google, но ни один из них не работает:/
Думаю, вы уже очистили свой кеш? rebuilt все lib, и т.д ..? – j0k
Очевидно, я сделал это ... очищенный кеш с symfony cc, а также вручную удалив папку – khartvin
Возможно, есть два класса sfGuardUserPeer. Попробуйте выполнить поиск «class sfGuardUserPeer» во всем коде. Убедитесь, что вы правы один (вы также можете неэриализовать файл cache/project_autoload.cache, который ищет путь к файлу класса). – glerendegui