Существует две распространенные причины этого типа ошибки:
Файл контроллера приложения не загружается
Если класс AppController
не существует - Cake будет использовать запасной вариантпоскольку это взято из ядра - это просто пустой класс.Для возникновения ошибки в вопросе - компонент Auth
не был загружен, наиболее вероятной причиной этого является то, что файл app/app_controller.php
либо не существует, либо другой файл класса AppController
был загружен перед просмотром
Это можно подтвердить, используя get_included_files , например:
class UsersController extends AppController {
public function beforeFilter() {
if (!isset($$this->Auth)) {
debug(get_included_files());
die;
}
Найдите , который app_controller.php
файл был загружен -если это , а не файл, содержащий класс в вопросе, это проблема.
Переопределенный конструктор, не вызывающий родителя
Хорошие дети всегда вызывают своих родителей:)
Если конструктор (или любой метод) переопределен и не вызывает родительскую функцию , то, например, свойство компонентов не будет корректно объединено / установлено или классы компонентов не будут инициализированы.
Если загружается правильный файл app_controller.php
, сосредоточьтесь на методах, определенных в классах контроллера, и проверьте, что они вызывают parent :: methodname (для контроллера пользователей и контроллера приложения).В частности, убедитесь, что вызывается конструкция Controller :: __, поскольку именно там большая часть логики инициализации класса находится в версии 1.3.