Я довольно новичок в CakePHP и строю сайт, используя компонент Auth. Пару раз я пытался что-то сделать с этим компонентом, что вызвало ошибку
Fatal error: Call to undefined method stdClass::user() in /ftphome/site/app/controllers/users_controller.php on line 395
Строка, на которую он ссылается в этом случае,
$this->User->read(null, $this->Auth->user('id'));
Эта ошибка не исчезает, когда я возвращаю код обратно к тому, что был до ошибки, и мне кажется, что я могу избавиться от него только путем удаления некоторых файлов на сервере (я не уверен, какие файлы, когда Я попытался удалить все файлы в каталоге tmp
, но ошибка не исчезла, поэтому я удалил весь сайт и восстановился из последней версии SVN.
В данном конкретном случае я думаю, что вызвал ошибку, поместив следующий код в app_controller
class AppController extends Controller {
function beforeRender() {
$this->set('test', $this->Auth->user());
}
}
Который я скопировал из этой темы http://groups.google.com/group/cake-php/browse_thread/thread/ee9456de93d2eece/cff6fe580d13622b?lnk=gst&q=auth
В предыдущий раз я вызвал проблему, пытаясь обновить данные пользователя Auth после обновления пользователя в базе данных.
Я вижу, что я каким-то образом удаляю объект пользователя из объекта Auth, но не могу понять, почему мне нужно удалить файлы на сайте, чтобы вернуть его, или как код, приведенный выше, удаляет его - любая помощь будет очень полезной оценили.
Редактировать
Похоже, что в случае, о котором я упоминал выше, проблема была в файле app_controller.php
, который я скопировал в каталог app/controllers
. Просто наличие файла с пустым объявлением класса вызывает эту ошибку - может кто-нибудь дать дальнейшее понимание?
Дальнейшее редактирование
Я понял, что был немного глуп, и проблема была вызвана тем, что я поставил app_controller.php
в /app/controllers/app_controller.php
, когда уже был один в /app/app_controller.php
- спасибо за ввод, хотя Энди, это помогает мне понять немного больше о том, что происходило.