Логика, которая используется несколькими контроллерами, должна быть помещена в AppController, компонент или модель, в зависимости от того, где она подходит лучше всего. Перекрестный запрос обходится дорого, но вы его нарезаете, если вам нужно создать экземпляр другого контроллера.