Проблема маршрутизации CakePHP - PullRequest
0 голосов
/ 15 июня 2010

Я столкнулся с проблемой маршрута CakePHP. Я могу получить доступ только к корню "/", и он показывает домашнюю страницу приветствия CakePHP по умолчанию. Позже я пытаюсь написать свой контроллер (icons_controller.php) и представления (views / icons / index.ctp), у него есть проблема. Я набрал http://localhost:8080/myapp/icons/ Он всегда говорит "Not Found The requested URL /myapp/icons/ was not found on this server." В моем файле routers.php он имеет:

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

Я создаю контроллер в файле icons_controller.php, например:

<?php
class IconsController extends AppController{
 var $name = 'Icons'; 
 function index() {
  $this->set('icons', $this->Icon->find('all'));
 }
}
?>

И нужно просто открыть файл только с текстом тега абзаца (в /views/icons/index.ctp)

<h1>My Icons</h1>

Но я не могу открыть index.ctp с помощью localhost:8080/myapp/icons/. Поэтому позже я попытался изменить свой файл routers.php следующим образом, он отлично работает с URL http://localhost:8080/myapp/:

Router::connect('/', array('controller' => 'icons', 'action' => 'index'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

Ничего страшного и удачного отображения текста «Мои значки». Хотите знать, почему работает только под "/", с чем-то еще не работает.

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

На самом деле проблема в том, что вы не назвали функцию так же, как маршрут дисплей. Таким образом, под контроллером вам нужен page_controller с функцией display () {} а также отображение в папке страниц под представлениями.

1 голос
/ 16 июня 2010

Убедитесь, что у вас включен mod_rewrite в Apache.

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

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