2016-08-10 1 views
1

Ich muss einen benutzerdefinierten FE-Benutzer mit einigen benutzerdefinierten Feldern erstellen. Außerdem muss es über das Frontend verschiedenen Benutzergruppen zugewiesen werden können.TYPO3: Modell erweitern und der vorhandenen Tabelle zuordnen

Sie können meine erste Annäherung here finden. Hat nicht so gut geklappt.

Der zweite Ansatz bestand darin, eine weitere Erweiterung zu erstellen und der Anleitung zu folgen, die gezeigt wird here.

Als erstes habe ich \TYPO3\CMS\Extbase\Domain\Model\FrontendUser in das Extend existing model class-field für mein CustomFEU-Modell eingefügt. Dann habe ich ein anderes Modell erstellt, das ich FEgroup genannt habe, und ich habe es der Tabelle fe_groups zugeordnet. Danach habe ich eine n: m-Beziehung mit dem CustomFEU verbunden.

Wenn ich versuche, ein neues CustomFEU mit der new Aktion zu erstellen, wird nach dem Absenden des Formulars eine weiße leere Seite zurückgegeben und kein Benutzer hinzugefügt.

Die einzige seltsame Sache, die ich fand, war, dass der /Classes/Domain/Repository/ Ordner leer ist.

TYPO3 7.6.8

Obwohl ich nicht die Dateien bearbeiten haben, doch hier sind sie:
Model/Controller/Setup

Hat jemand ähnliche Probleme auftreten?

+1

Bitte inline Ihren Code - Pastebin Links können sterben. Wenn Sie eine leere Seite bekommen, bekommen Sie wahrscheinlich irgendwo einen fatalen PHP-Fehler - überprüfen Sie das Fehlerprotokoll oder aktivieren Sie die Anzeige von Fehlern im Frontend. – Jost

+1

"Leere weiße Seite" klingt, als ob Ihr System keine Fehler/Ausnahmen ausgibt. Schalten Sie display_errors in PHP ein und stellen Sie Ihre TYPO3-Installation auf die Entwicklungsvoreinstellung ein, um zu sehen, was gerade passiert. Sprechen Sie auch darüber, dass die newAction() - oder createAction() -Methode fehlschlägt? – j4k3

Antwort

2

Zuerst müssen Sie die Repositorys erstellen, die die neuen Benutzer- und Benutzergruppenmodelle verarbeiten.

Zweitens versuchen Sie, den Benutzer mit $this->customFEURepository->add($newCustomFEU); zu speichern, und die Variable CustomFEURepository existiert nicht. Es wäre das Beste, es zu injizieren, es muss das Repository sein, das Sie zuerst erstellen sollten. Sie können es so injizieren:

/** 
* CustomFEUController 
*/ 
class CustomFEUController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController 
{ 

    /** 
    * @var \Vendor\Feregistration\Repository\CustomFEURepository 
    * @inject 
    */ 
    protected $customFEURepository; 

// other code ... 
} 

Vergessen Sie nicht, den System-Cache zu löschen, nachdem Anmerkungen Hinzufügen injizieren, sonst wird es nicht funktionieren.

Last but not least kann ich die Zuordnung zur Datenbanktabelle für Ihr Modell nicht sehen. Sie müssen es zu Ihrem TypoScript (setup.txt) hinzufügen

config.tx_extbase.persistence.classes { 

    Vendor\Feregistration\Domain\Model\CustomFEU { 
     mapping { 
      recordType = 0 
      tableName = fe_users 
     } 
    } 

    Vendor\Feregistration\Domain\Model\FEGroups { 
     mapping { 
      recordType = 0 
      tableName = fe_groups 
     } 
    } 
} 
Verwandte Themen