2017-04-14 1 views
0

Ich versuche, Backend-Benutzerfelder in octobercms zu erweitern, aber nach dem Hinzufügen eines neuen Felds, wenn ich versuche, das Formular zu speichern gibt es eine Fehlermeldung besagt, dass dieses Feld nicht in der Datenbank vorhanden ist . Wie kann ich eine Spalte für mein neues Feld hinzufügen? Hier ist mein Code:Erweitern von Feldern erstellt keine Datenbankspalten in OctoberCMS

public function boot() 
{ 
    // Extend all backend form usage 
    Event::listen('backend.form.extendFields', function($widget) { 

     // Only for the User controller 
     if (!$widget->getController() instanceof \Backend\Controllers\Users) { 
      return; 
     } 

     // Only for the User model 
     if (!$widget->model instanceof \Backend\Models\User) { 
      return; 
     } 

     // Add an extra birthday field 
     $widget->addTabFields([ 
      'birthday' => [ 
       'label' => 'Birthday', 
       'comment' => 'Select the users birthday', 
       'type' => 'datepicker', 
       'tab'  => 'Billing' 
      ] 
     ]); 


    }); 
} 

Antwort

2

ein Modell Erweiterung nicht automatisch die Felder in der Datenbank für Sie erstellen.

Um Datenbankfelder zu erstellen, müssen Sie ein migration erstellen und dann ausführen.

Die Builder Plugin bietet eine sehr gute Möglichkeit zum grafischen Erstellen, Anwenden und Zurückrollen von Migrationen.

+2

@Ahmed Essam: Ich muss darauf hinweisen, dass das Hinzufügen von Migrationen direkt zu einem fremden Plugin, das Sie nicht kontrollieren, nur Ärger erfordert. Unter https://vimeo.com/108040919 finden Sie eine Anleitung zur Behebung dieses Problems. – LukeTowers

Verwandte Themen