Cakephp: Как я направил бы все недостающие вызовы контроллера/действия к единственной, общей ошибочной странице?

Можно купить шаблоны у IEEE и других мест, но я всегда заканчивал тем, что делал свое собственное.

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

До функциональной спецификации, важная вещь состоит в том, чтобы определить все интерфейсы:

  1. UI (экранируют макеты)
  2. Программные интерфейсы (плагины, и т.д.)
  3. Аппаратные интерфейсы (если соответствующий)
  4. Интерфейсы связи (Сервисы, электронная почта, обмен сообщениями, и т.д.)

должен также быть раздел для бизнес-правил, вещи, которые важны функционально, которые не охвачены ни в каком интерфейсном определении.

8
задан davethegr8 17 November 2009 в 17:02
поделиться

2 ответа

Cake автоматически выдает ошибку 404 при отсутствии методов или контроллеров. В режиме отладки эта ошибка принимает форму подробного сообщения об ошибке, содержащего инструкции, например:

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

Ошибка: FooController не может быть найден.

Ошибка: Создайте класс FooController ниже в файле:> app / controllers / foo_controller.php

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

В рабочем режиме ( debug = 0 ) сообщение выглядит просто так:

Not Found

Ошибка: запрошенный адрес '/ foo' не был найден на этом сервере.

Эти страницы ошибок определены в cake / libs / view / errors / . Как говорится в сообщении в режиме отладки, вы можете создать свой собственный,

25
ответ дан 5 December 2019 в 05:03
поделиться

Вы находитесь в контроллере, когда пытаетесь перенаправить на страницу с ошибкой 404?

Что ж, если это так, вы можете обойти проблему следующим образом:

Копировать и вставляем макет ошибки (error404.ctp) из торта каталог основной библиотеки в ваш app / views / errors /

Затем добавьте следующую строку всякий раз, когда вы сталкиваетесь с ошибкой внутри контроллера.

$this->cakeError('error404',array(array('url'=>'/'))); 

О, еще один способ справиться с этим - отредактировать файл routes.php в app / config

CakePHP Официальный сайт Routes-Configuration

У меня в данный момент нет рабочей копии CakePHP, поэтому я просто опишу здесь базовую логику (что вы можете делать в файле routes.php)

Перенаправляйте трафик с определенными шаблонами URL-адресов (скажем, http: // yourwebsite / validController / validFunction / validParam ) в соответствующие места назначения соответственно. Перенаправьте весь остальной трафик (отсутствующий контроллер, модель, представление и т. Д.) На страницу 404.

Надеюсь, что это поможет :)

0
ответ дан 5 December 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: