Предпосылки: У меня есть метод levelCheck()
который сравнивает уровень текущего пользователя с несколькими параметрами и возвращает true или false. Мне нужно иметь доступ к этому методу с любого контроллера, и я также хотел бы позвонить ему внутри помощника для использования в меню и т. Д.
Вопрос: Из-за гибкости Cake я могу назвать почти что угодно почти из любого места с Cake. Где правильное место для этого? В пользовательском сеансе (расширенный)? В AppController? Новый компонент, работающий с текущим пользователем? В UserModel или User Controller?
Важным здесь является то, как я (или другие) определяю правильное местоположение для такой вещи в будущем?
Поместите этот метод в AppController
class AppController extends Controller { function levelCheck(){ # whatever } }
Это правильное место этого действия. Поскольку AppController расширен во всем контроллере, поэтому этот метод можно вызвать с помощью текущего объекта контроллера, который равен $ this-> levelCheck ().
В AppController
function beforeFilter() { $this->custome_componnetst_name->levelCheck(parameters.....); /*action*/ }