Как получить модель и название действия вызывающего действия - PullRequest
0 голосов
/ 22 ноября 2010

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

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

$this->Log->save(array(
    'user'=>$this->Auth->user('id'), 
    'model'=>$this->name, 
    'action'=>$this->action));

Я бы хотел сократить его до:

$this->Log->save();

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Я нашел замечательный алкерман LogableBehavior , и он работает как шарм. Не нужно изобретать велосипед.

0 голосов
/ 22 ноября 2010

Я думаю, я был бы склонен либо написать метод на app_controller, такой как

saveLog(), который вызывает

$this->Log->save($uma_array)

, либо упростить существующую конструкциювыполнив

$this->Log->save($this)

и распутав данные внутри метода.

РЕДАКТИРОВАТЬ:

Конечно, лучший способ сделать этоиспользовать наблюдаемое поведение, используя шаблон teknoid: http://nuts -and-bolts-of-cakephp.com / 2009/08/10 / наблюдающий-шаблон-пирог-путь / Это не так сложно реализовать.

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