2017-05-10 1 views
0

Ich benutze yii Rahmen und ich möchte eine Aktivität protokollieren für jede Aktion, die Benutzer in meinem Web tun. Alle ihre Aktivitäten werden in einer Tabelle in der Datenbank gespeichert.Protokollierung der Aktivität in der Datenbank yii Rahmen

Die Dinge, die sind aufgezeichnet wird:

  • Benutzer-ID
  • Tabellenname (eingefügt, gelöscht, bearbeitet Artikel)
  • time_action
  • Aktivität (was taten sie ab. Erstellt project_name)

Bitte helfen Sie. Danke im Voraus.

Antwort

0

Ich bin nicht sicher, was Sie versuchen, aber es ist wie wenn ein Benutzer ein Element löscht; Dann sollte der Eintrag in der Datenbank für diesen Benutzer angemeldet sein? Wenn ja, dann können Sie eine gemeinsame Klasse und eine statische Methode darin wie schaffen

yourCommonClass::setActivityLog(user_id,activity_msg,time); 

und diesen Code setzen in jeder Aktion, die Sie geschrieben haben. Ex. actionUpdate, actionLöschen.

  • Sie die user_id von Yii::app()->user->id
  • bekommen setzen Sie benutzerdefinierte Aktivitätsmeldung wie „User #user_id neues Element erstellt“ usw.
  • Mal, wenn Sie es beim Speichern in der Datenbank erhalten.

Übrigens, erstellen Sie eine Tabelle und ein Modell für die gleiche wie ActivityLog. ;) Das habe ich in meinem Projekt gemacht.

+0

danke für die antwort .. ich habe meine eigene lösung. Es ist fast dasselbe mit Ihrer Lösung. indem ich jede Aktion in meinem Controller hinzufüge und etwas Hardcode + gebe, die vom Benutzer eingegeben wurde. Danke dir :) – Trainee