2010-06-15 2 views
0

У меня была проблема с маршрутом 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 имеет:Проблема маршрутизации CakePHP

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')); 

Это прекрасно и успех отображения «Мои иконки» текст. Интересно, почему работает только под «/», ни с чем другим не работает.

ответ

1

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

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