Загадка MVC: Как я могу решить эту проблему и не допустить логики в поле зрения? - PullRequest
2 голосов
/ 19 октября 2010

Я создаю сайт с помощью CakePHP, но этот вопрос больше касается решения проблемы MVC, чем проблемы CakePHP.

У меня есть модель пользователя и модель группы. Это отношение HABTM, поэтому разные пользователи могут принадлежать к нескольким группам. Один контроллер на моем сайте управляет блогом. У него много методов, но все представления разделяют элемент боковой панели с такими вещами, как связанные сообщения и т. Д. Я хочу добавить некоторые ссылки на боковую панель блога, которые может видеть только пользователь, принадлежащий к группе администраторов.

Сначала я решил просто зациклить элемент view в каждой группе, к которой принадлежит пользователь, и, если группа Admin найдена, отобразить ссылки и разорвать цикл.

Но это, кажется, нарушает схему MVC. Есть ли лучший способ?

1 Ответ

3 голосов
/ 19 октября 2010

Просто реализуйте логический метод isAdmin() в модели User, который будет инкапсулировать логику проверки разрешений, а затем вызовите его из представления, чтобы проверить, является ли данный пользователь администратором или нет.

Как правило, сохраняйте всю бизнес-логику в моделях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...