TYPO3-Version 7.6.9
femanager-Version 2.5.0
Hallo,
ich habe für eine eigene Extension die Tabelle 'fe_user' und die Klasse '\In2code\Femanager\Domain\Model\User' erweitert, und zwar um ein Feld 'organisation'. Dabei bin ich der Anleitung unter „Best Practices“ in der femanager-Dokumentation gefolgt.
Nun gibt es ein Problem beim Bearbeiten der Daten im Frontend. Bei neuen und bei geänderten User-Daten wird das Feld 'organisation' richtig abgespeichert. Wenn der entsprechende Satz aber später wieder in das Bearbeitungsformular des Views geladen wird, ist das Feld 'organisation' leer – obwohl in der Datenbank ein Wert gespeichert ist.
Das habe ich herausgefunden: Der zuständige femanager-Controller weist in der editAction dem View den aktuellen User zu, und zwar als Objekt der Klasse 'In2code\Femanager\Domain\Model\User', also natürlich ohne 'organisation'.
-
class EditController extends AbstractController {
...
public function editAction() {
$this->view->assignMultiple([
'user' => $this->user,
'allUserGroups' => $this->allUserGroups
]);
$this->assignForAll();
}
...
}
-
In „meiner“ Version des Controllers – vom femanager-Controller abgeleitet – lade ich darum denselben User noch einmal aus der Datenbank, allerdings als Objekt meiner User-Klasse, also mit 'organisation'. Das habe ich im Debugger verifziert. „Meinen“ User weise ich dann als aktuellen User zu und rufe danach die Parent-Funktion der editAction auf.
-
class EditController extends \In2code\Femanager\Controller\EditController {
...
public function editAction() {
$userUid = $this->user->getUid();
$userRepository = $this->objectManager->get('MediaNova\\MnEvents\\Domain\\Repository\\UserRepository');
$user = $userRepository->findByUid($userUid);
$this->user = $user;
parent::editAction();
}
...
}
-
Leider wird der Wert von 'organisation' nicht im View angezeigt (das Eingabefeld ist leer). Was fehlt noch?
Danke für eure Hilfe.
Tosta