2016-06-24 7 views
0

Ich habe ein Verhalten für meine Tabellen erstellt, das in der beforeSave() -Methode zwei grundlegende Variablen einer Tabelle einstellt: created_by und created_on (gleich für modifizierte und gelöschte).Wie kann ich eine Variable von einem Controller an ein Verhalten senden? cakePHP

  • Die created_on-Spalte der Tabelle speichert die Uhrzeit, zu der das Objekt in dieser Klasse erstellt wurde.
  • Die created_by-Spalte speichert derzeit eine Zeichenfolge "unbekannt", aber ich möchte den Benutzernamen des aktiven Benutzers aus der aktuellen Sitzung speichern.
  • Ich verwende derzeit den active_user in meinen Controllern und setze es aus der beforeFilter() - Methode von AppController. Wie kann ich Active_Benutzer-> Benutzername von meinem Controller an das Verhalten senden? Gibt es einen möglichen Weg? Oder eine alternative Methode zum Senden einer Zeichenfolge an das Verhalten?

    +0

    Verwenden Sie Sitzungen, um den aktiven Benutzernamen in Ihren Tabellen zu speichern. –

    Antwort

    1

    Denken Sie daran, dass Kuchen hat ein eingebautes Verhalten, um die created und modified Datum zu speichern. Alles, was Sie tun müssen, aktivieren Sie es in der Tabelle. (Siehe Handbuch here)

    $this->addBehavior('Timestamp'); 
    

    Um die sogar den Benutzer speichere ich ein Plugin zu verwenden, die eine globale Variable in der Steuerung gesetzt (Sie können es in Ihrem AppController)

    $authUser = $controller->Auth->user(); 
    Configure::write('GlobalAuth', $authUser); 
    

    und in der Verhalten

    Aber ehrlich gesagt weiß ich nicht, ob dies die beste Methode ist.

    das Plugin I ist diese, zu Ihrer Information

    https://github.com/cakemanager/cakephp-utils

    +0

    Danke, es funktioniert perfekt und ich sende nur den $ active_user-> Benutzernamen, um es effizienter zu machen. – Kopezaur

    1

    Sie auch muffin/footprint Plugin verwenden und anpassen können, welche Daten Sie in before speichern möchten.