пытаясь написать метод для моего приложения cakephp, который проверяет, существует ли метод, вызываемый в URL-адресе, и перенаправляет пользователя на его тип учетной записи, если метод имеет значение true или нет. Возможно ли это? где пользователь может просто переопределить мой URL-адрес, например \localhost\www\project\user\method\ID, затронутый методом
пытаясь использовать встроенную функцию php method_exists для таких. и если это возможно, как бы я это сделал?
Всякий раз, когда вы вызываете несуществующий контроллер или действие, 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, чтобы узнать, с каким пользователем вы имеете дело, и перенаправить их в соответствии с вашими пожеланиями.