CakePHP, откуда вызывать метод

У меня есть ситуация, когда мне интересно, где лучше всего вызывать метод в модели.

У меня есть метод в модели с именем positionRecords(), эта модель перебирает определенные записи и на основе некоторых критериев упорядочивает записи с полем позиции в таблице.

На данный момент я вызываю его из метода afterSave() в модели, но я не хочу вызывать его каждый раз при сохранении поля, например, у меня есть другие методы, которые могут изменять поле даты, и это также вызовет метод afterSave(), а затем вызовет метод positionRecords(), который не повлияет на положение записи.

В этом случае лучше вызвать positionRecords() из контроллера, когда сохранение было завершено при добавлении, редактировании и удалении? Или лучше встроить условия в метод afterSave(), чтобы определить, когда следует вызывать positionRecords()?

P.S. это всего лишь один пример, я ищу лучшие практики, когда речь идет об определенных событиях, таких как редактирование, добавление или удаление.

Большое спасибо


person Jaco Roux    schedule 15.02.2014    source источник


Ответы (1)


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

http://book.cakephp.org/2.0/en/models/callback-methods.html

И лучшее место для вызова функции модели - из контроллера.

person Anubhav    schedule 15.02.2014
comment
Большое спасибо за подтверждение - person Jaco Roux; 16.02.2014