2016-04-17 2 views
1

ich eine einfache Benutzerregistrierungsanwendung erstellt:Laravel 5.2 - Legen Sie Wert in Spalte User nicht funktioniert

$confirmation_key = str_random(100); 
$data = [ 
    'email' => $post['email'], 
    'password' => Crypt::encrypt($post['password']), 
    'confirmation_key' => $confirmation_key 
]; 
User::create($data); 

Natürlich habe ich eine Migration für sie hinzugefügt:

public function up() 
    { 
     Schema::create('users', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('name'); 
      $table->string('email')->unique(); 
      $table->string('password'); 
      $table->boolean('confirmed')->default(0); 
      $table->string('confirmation_key')->nullable(); 
      $table->rememberToken(); 
      $table->timestamps(); 
     }); 
    } 

Der Benutzer erfolgreich in die zugegebene Datenbank, aber der Bestätigungsschlüssel ist immer noch null, ändert sich nicht. Zusätzliche Frage: Was ist, wenn ich eine andere Spalten zur Benutzertabelle hinzufügen möchte? Was ich tun muss?

Antwort

2

Sie müssen sicherstellen, dass Sie confirmation_key in $fillable Eigenschaft User Modell wie so hinzugefügt haben:

protected $fillable = ['email','password','confirmation_key']; 

Wenn Sie eine andere Spalten, die Sie benötigen hinzufügen möchten, um neue Migration zu erstellen und ausführen und wenn Sie wollen Wenn diese Spalte befüllbar ist, müssen Sie sie zu $fillable Eigentum von User Modell hinzufügen.

EDIT

Wenn Sie machen wollen befüllbar jede Spalte nicht create von fill Methode verwenden Sie es in Tabelle hinzufügen und es wird einfach nicht möglich sein, zu tun:

User::create($data); 

in In diesen Fällen benötigen Sie etwa Folgendes:

// here you fill fillable data 
$user = new User($data); 
// this way you can fill properties that are not fillable 
$user->some_not_fillable_property = 'some value'; 
// now you save it to database 
$user->save(); 
+0

Was ist, wenn die Spalte nicht befüllbar ist? Was kann ich mit nicht ausfüllbaren Säulen tun? –

+0

@ItzhakAvraham Bitte schauen Sie auf meine Bearbeitung –