В зависимости от степени исключения из ваших обычных действий, изменение в маршрутизации может иметь больше смысла:
Router::connect('/mycontroller/*',
array('controller' => 'mycontroller', 'action' => 'catchall'));
Если у вас есть некоторые нормальные действия в этом контроллере, определите маршрут для них до этого универсального маршрута, чтобы они обрабатывались нормально.
Если вы действительно хотите поработать с обработкой действий в самом контроллере, вы можете сделать это в beforeFilter
:
public function beforeFilter() {
if (!method_exists($this, $this->action)) {
unshift($this->params['pass'], $this->action);
$this->action = 'catchall';
}
}
По крайней мере, что-то подобное, это просто быстрая непроверенная идея.