CakePHP проверить, существуют ли методы или функции и перенаправить соответственно

0

пытаясь написать метод для моего приложения cakephp, который проверяет, существует ли метод, вызываемый в URL-адресе, и перенаправляет пользователя на его тип учетной записи, если метод имеет значение true или нет. Возможно ли это? где пользователь может просто переопределить мой URL-адрес, например \localhost\www\project\user\method\ID, затронутый методом

пытаясь использовать встроенную функцию php method_exists для таких. и если это возможно, как бы я это сделал?

Теги:
cakephp

1 ответ

0

Всякий раз, когда вы вызываете несуществующий контроллер или действие, CakePHP будет MissingControllerException MissingActionException MissingControllerException или MissingActionException и ошибку 404 соответственно. Вы можете отреагировать на это, как хотите. Вы можете создать свой собственный обработчик исключений и уловить любое MissingControllerException или MissingActionException а затем обработать его оттуда.

Или вы можете проверить код состояния в объекте ответа из AppController, который технически не является "чистым", как фактически обрабатывающим исключения, но в любом случае выполняет работу без особых усилий. Для этого в вашем AppController добавьте:

public function beforeRender() {
    if ($this->response->statusCode() == '404') {
        // We've hit a 404, do whatever you want to do here...
    }
}

Там вы можете проверить Session/AuthComponent, чтобы узнать, с каким пользователем вы имеете дело, и перенаправить их в соответствии с вашими пожеланиями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню