CakePHP 2.1 новая установка Отсутствует ошибка контроллера - PullRequest
1 голос
/ 07 марта 2012

Я совершенно новичок в CakePHP и установил 2.1. Я получаю эту ошибку:

Отсутствует контроллер

Ошибка: не удалось найти Index.phpController.

Ошибка: создайте класс Index.phpController ниже в файле: app \ Controller \ Index.phpController.php

<? PHP Класс Index.phpController расширяет AppController {</p>

} Примечание: если вы хотите настроить это сообщение об ошибке, создайте app \ View \ Errors \ missing_controller.ctp

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

APP \ webroot \ index.php строка 96 → Диспетчер-> рассылка (CakeRequest, CakeResponse) ROOT \ index.php строка 40 → требуется (строка)

Я последовал их руководству в http://book.cakephp.org/2.0/en/installation/advanced-installation.html и перепробовал все, что в нем было сказано:

  • Я включил mod_rewrites (они уже были включены из чего-то другого)
  • У меня есть все файлы .htaccess в каталогах
  • У меня установлен торт под корнем моего документа, поэтому я обращаюсь к нему по адресу localhost / cakephp / index.php

Я не знаю, куда идти дальше. Спасибо за любую помощь, вы можете дать мне.

Ответы [ 3 ]

4 голосов
/ 07 марта 2012

Обновление: Я только что перечитал ваш вопрос и понял, что вы загружаете http://localhost/cakephp/index.php. Не делайте этого.Поскольку вы добавили «index.php», он пытается загрузить контроллер с именем «index.php» и действие «index» для этого контроллера.Результирующий сопоставленный путь к «контроллеру index.php»: app \ Controller \ Index.phpController.php.

Поскольку у вас включена перезапись, перейдите к http://localhost/cakephp без добавления имени файла.


Оригинальный ответ:

Предполагая, что вы используете Apache, дважды проверьте .htaccess в каталоге / app / webroot.Он должен включать следующее:

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

На основании вашей ошибки не похоже, что он правильно добавляет путь после вашего файла index.php.

1 голос
/ 16 апреля 2012

Если вы используете cakephp 2.0 или выше, чем переименуйте имя файла контроллера в качестве имени класса. т.е. TaskController.php

class TasksController extends AppController {

--Your code inside class
}

Я надеюсь, что это поможет вам

0 голосов
/ 07 марта 2012

самое простое решение - придерживаться «живой среды» как можно ближе. это означает использование vhosts для использования «домена» и правильного root-доступа к каталогу webroot: http://www.dereuromark.de/2011/05/29/working-with-domains-locally/

это почти не оставляет места для ошибок, а также помогает с другими потенциальными проблемами, такими как "абсолютно связанные файлы активов" и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...