-
Benutzer bearbeiten
Hallo zusammen,
ich komm hier grad nicht weiter.
Ich habe eine Funktion die mir den Benutzer abändern soll.
PHP-Code:
public static function updateMember($objMember)
{
$objMember->firstname = 'firstname';
$objMember->lastname = 'lastname';
$objMember->company = 'company';
.....
$objMember->save();
}
$objMember ist der aktuell angemeldeter Benutzer.
Wenn ich dann im Backend mir den Benutzer anschaue, wurde keine Änderung vorgenommen.
Wenn ich jetzt nach
PHP-Code:
$objMember->save();
ein exit einbaue, wird die Änderung vorgenommen.
Was mach ich da falsch?
Vielen Dank für Hinweise.
-
Benutzer oder Mitglied?
Und wurde dieser Benutzer/Mitglied auch über das Model geladen, da ansonsten das ->save() nicht funktioniert
-
Sorry, es geht um Mitglieder.
Ja wurde über das Model geladen.
PHP-Code:
public function checkCredentialsHook($strUsername, $strPassword, User $objUser)
{
$objMember = MemberModel::findByPk($objUser->id);
.....
}
-
Sollte eignetlich funktionieren. Prüf das mal auf DB Ebene ob die Änderungen geschrieben werden.
-
Im Backend sind bei dem Mitglied die alten Daten hinterlegt.
Oder wie meinst du das mit auf DB Ebene prüfen.
-
Na schau doch einfach mal in deine MySQL Datenbank ob sich der Datensatz geändert hat nachdem du den Code ausgeführt hast. Ich hab schon mit Experten zu tun gehabt, die haben immer auf "Speichern" geklickt und sich gewundert, warum sich der Datensatz nicht ändert ;-)
-
Ne Datensatz wird nicht geändert
-
Wird denn die Methode überhaupt aufgerufen? Setz dir doch mal zwischendrin ein paar "die();" um zu schauen ob dien Script bis zu einer bestimmten Stelle läuft.......
-
ja die Methode wird durchgeführt.
Wenn ich nach dem $objMember->save(); ein exit; einbaue, wird der Datensatz auch geändert.
-
Wenn es mit "exit" geht, kann das ja nur heissen, dass Deine Methode zwar ausgeführt, aber danach noch von woanders überschrieben wird.
Mein Verdacht geht in Richtung des aufrufenden Callbacks...
-
Ah ok, das mit dem "exit" hab ich oben im ersten Beitrag überlesen. Vermute ebenfalls, dass der checkCredentials nicht unbedingt gut geeignet ist um am Mitglied selbst was zu ändern, sondern um anderweitige Zugangsdaten zu prüfen.
Vielleicht wäre der HOOK importUser besser geeignet bzw. postLogin (sofern es die Mitglieder auch tatsächlich gibt).
-
Wie kann ich rausfinden was danach noch ausgeführt wird?
Naja ich prüfe zuerst am Ldap ob der Benutzer zugriff hat. Danach sollen noch paar Daten geändert werden.
Hierzu brauche ich schon den Hook checkCredentials
-
Ausprobieren oder in der Klasse nachlesen wann etwas ausgeführt wird.
-
mit dem Hook postLogin funktioniert es. Danke euch