URL-адрес маршрута CakePHP не найден! - PullRequest
2 голосов
/ 25 марта 2011

Я пытаюсь сделать несколько пользовательских маршрутов на моем сайте, но застрял на 2 дня из-за очень глупой проблемы.У меня есть следующая конфигурация маршрута:

Router::connect('/your-solution/add-comment/*', array('controller' => 'comments', 'action' => 'add'));
Router::connect('/admin/your-solution/add-comment/*', array('controller' => 'comments', 'action' => 'add', 'admin' => true));

Проблема в том, что когда я пытаюсь загрузить URL-адрес, отформатированный с использованием второго маршрута, он выдает мне 404 не найден.Первое правило работает нормально.

Для обоих правил у меня есть отдельный элемент, содержащий форму и указывающий на URL, отформатированный после соответствующего правила.Единственным параметром для обоих действий является идентификатор решения, который «содержится» в шаблоне.

В чем может быть проблема?Большое спасибо за вашу помощь!

РЕДАКТИРОВАТЬ:

Я обнаружил еще одно странное поведение.Когда я получаю доступ к /admin/your-solution/add-comment/3, он переходит к этому действию.Но если я отправлю форму по этой ссылке, она отобразит пустую страницу, и Firebug сообщит мне, что страница не найдена.Очень странно ... Также у меня есть похожий маршрут для редактирования комментариев.Как загрузка формы редактирования, так и сохранение формы работают ...

Ответы [ 3 ]

6 голосов
/ 25 марта 2011

как дела?

Чтобы точно понять, почему он не работает, перейдите в ваш /app/config/core.php и найдите эту строку:

Configure::write('debug', 2);

И убедитесь, что значение установлено на «2». Таким образом, это больше не выдаст ошибку 404, а реальную проблему, поскольку в производственном режиме (отладка установлена ​​в 0) все ошибки маскируются ошибкой 404.

Дайте мне знать!

Ура!

1 голос
/ 25 марта 2011

В вашем core.php обязательно

Configure :: write ('Routing.prefixes', массив ('admin'));

В контроллере комментариев, убедитесь, что у вас есть

function admin_add() {...}

Также попробуйте другие способы форматирования оператора маршрутизации.

Router::connect('/admin/your-solution/add-comment', array('controller' => 'comments', 'action' => 'add', 'admin' => true));

Порядок вашего маршрута также важен. Вы можете проверить это.

Для отладки того, какой маршрут вы используете при загрузке URL, попробуйте добавить этот код в файл app_controller.php.

function __construct() {
    $route = Router::currentRoute();
    pr($route);
}

Это всего лишь несколько советов, которые, надеюсь, помогут вам двигаться вперед.

0 голосов
/ 26 марта 2011

Видимо, проблема была в отключенном входе.После того как я удалил этот элемент, форма отправляется правильно, и отображается целевая страница.

Насколько мне известно, почему форма не отправляется, если в ней есть отключенный ввод?

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