Доступ к методам с другого контроллера CakePHP или лучшей альтернативы! - PullRequest
1 голос
/ 21 октября 2009

Я создаю систему поощрений для своего веб-сайта, чтобы поощрять участников сообщества, почти так же, как при переполнении стека используются значки.

Сайт построен в CakePHP, я создал модель Award, контроллер и т. Д. - в настоящее время в контроллере Award содержатся методы для расчета наличия у пользователя награды.

Однако я не могу выбрать лучший способ обновления наград - скажем, например, вы делаете определенное количество комментариев и получаете за это вознаграждение, CRON будет недостаточно, в противном случае пользователь может посетить свой профиль, ожидая Награда и не иметь, пока CRON не будет запущен.

Я думал об использовании requestAction () для вызова метода для обновления наград в контроллере наград, однако это не совсем соответствует шаблону проектирования MVC, и я подумал, что должен быть лучший способ!

Ответы [ 2 ]

1 голос
/ 27 октября 2009

создайте функцию в помощнике и поместите ее в свой макет, чтобы он выполнялся каждый раз, когда макет отображается.

1 голос
/ 21 октября 2009

Если единственный способ получить награду - это сделать комментарий, я бы просто переопределил Model :: save, чтобы определить, будет ли добавлен новый комментарий. Если это так, позвоните в модель наград, чтобы обновить премию.

Если существует несколько действий, которые могут давать награды, вы можете либо нажать на каждую модель, чтобы выполнить эту проверку, либо изменить AppModel, чтобы при каждом сохранении вызывался вызов checkNewAwards () ...

Или, может быть, я не понимаю вопроса?

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