2016-04-01 6 views
5

Ich möchte eine Tabelle mit den folgenden Elementen migrieren.Laravel 5.0, Migration: wie Integer nicht zu einem Primärschlüssel machen?

public function up() { 
    Schema::create('users', function(Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('LoginID', 9)->unsigned(); 
     $table->string('username'); 
     $table->string('email')->unique(); 
     $table->string('password', 60)->unique(); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 
} 

Allerdings habe ich den Fehler unten behandelt. Wer weiß, wie integer zu machen „LoginID keinen Primärschlüssel, so dass ich unter den Tisch wandern kann? Jede Beratung sehr geschätzt. Vielen Dank im Voraus.

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1 table "users" has more than one primary key (SQL: create table "users" ("id" integer not null primary key autoincrement, "LoginID" integer not null primary key autoincrement, "username" varchar not null, "email" varchar not null, "password" varchar not null, "remember_token" varchar null, "created_at" date time not null, "updated_at" datetime not null))

+0

Etwas ausgeschaltet ist. In der Migration, die Sie angezeigt haben, ist nichts enthalten, was dazu führen würde, dass LoginID ein automatisch inkrementierter Primärschlüssel ist. – patricus

+0

Ich kenne die Ursache nicht, aber es funktionierte ein paar Stunden später. – ILoveBaymax

Antwort

0

Sollten Sie nicht rufen

$table->primary('id'); 

? id-Spalte als Primärschlüssel

+0

Wie Sie sehen können, versucht die Abfrage, zwei Primärschlüssel zu erstellen: '" id "integer nicht null Primärschlüssel autoincrement," LoginID "Ganzzahl nicht null Primärschlüssel autoincrement' – Daan

4

das Problem zu markieren ist, dass Sie die Funktion ->integer() mit einem zweiten param verwenden nach dem docs der zweite Parameter ein boolean autoincrement einzustellen erwartet oder nicht. bool $autoIncrement = false).

Try this:

public function up() { 
    Schema::create('users', function(Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('LoginID')->unsigned(); 
     $table->string('username'); 
     $table->string('email')->unique(); 
     $table->string('password', 60)->unique(); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 
}