Как сделать расширенную регистрацию в базе данных с CakePHP? - PullRequest
0 голосов
/ 09 августа 2011

Необходимо войти в таблицу базы данных (logs) всех основных действий, которые произошли в моем приложении. Например, действия будут login/logout, view, add, update, и т. Д. Таким образом, каждый раз, когда кто-то входит в систему или, скажем, просматривает конкретную запись - это будет записано в таблицу базы данных.

Я хотел бы вызывать этот метод из всех контроллеров настолько простым, насколько это возможно - что-то вроде logIt($action, $object, $note) - так как это будет расставлено по точкам в каждом контроллере. Это также должно быть достаточно эффективным.

У вас есть предложения? Как лучше всего сделать что-то подобное?

Спасибо, ребята. С уважением, новичок в CakePHP.

Ответы [ 2 ]

3 голосов
/ 09 августа 2011

Вы можете использовать $this->log($data,'log_file'); в любом месте торта (модель, вид, контроллер).Данные будут записаны в tmp / logs / log_file.log

. Если вам нужно войти в БД, вам нужно настроить метод журнала в app_controller, загрузить модель самостоятельно.И вызывайте этот журнал в любом контроллере, который вам нужен.

0 голосов
/ 10 августа 2011

Лично я думаю, что ответ Anh Phams намного более "торт" и масштабируем, но если вам нужно, чтобы этот список обновлялся в режиме реального времени, то вам придется поместить его в БД, я думаю.

Лучший способ сделать это в противном случае - какой-то пользовательский компонент , который вы можете прикрепить к своим контроллерам по своему усмотрению. Конечно, вы всегда можете создать простой метод в вашем AppController, который загружает модель 'log' и сохраняет запись при ее вызове.

...