2013-06-10 4 views
2

Я задаюсь вопросом, почему я получил эту ошибку при установке sfDoctrineGuard плагин в symfony 1.4 проектНеизвестный метод SfGuardUserTable :: retrieveByUsername Symfony1.4

трассировки стека:

SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Table.php line 2856 ... 
      return call_user_func_array(array($this->getRecordInstance(), $method . 'TableProxy'), $arguments); 

     } catch (Doctrine_Record_UnknownPropertyException $e) {} 
     throw new Doctrine_Table_Exception(sprintf('Unknown method %s::%s', get_class($this), $method)); 
    } 
} 

ответ

3

Проблема возникает при запуске доктрины сборки all или build model из командной строки.

Если sf_guard_user таблица существует в базе данных, запуск любых из этих команд генерирует пустой SfGuardUserTable класс в папке \lib\model и это привыкает вместо sfGuardUserTable класса сидит в папке плагина, который действительно содержит метод retrieveByUsername.

Извлечение классов SfGuard____ из вашей папки lib создаст проблему.

Я использовал команды сборки довольно часто и немного устал от этого делать каждый раз. В конце концов я переместил код из папки плагина в каталог lib, который не рекомендуется. Но я не думаю, что плагин sfGuardUser поддерживается больше, поэтому, если вы знаете, что делаете, вы можете попробовать.

+0

Когда вы запускаете 'doctrine: build', он должен генерировать классы в вашей' lib/model/doctrine/sfGuardPlugin', и эти классы должны расширять классы «PluginGuard__». Если задача не делает этого для вас, расширьте эти классы вручную, поэтому вам не придется удалять их после каждой «доктрины: сборка». –

+0

Теперь он работает, thx alot for help –

Смежные вопросы