5

ユーザー テーブルの新しい移行を作成しようとしています。次のスキーマがあります。

        Schema::create('users', function($t) {
            $t->increments('id');
            $t->string('username', 16);
            $t->string('password', 64);
            $t->integer('role', 64);
            $t->timestamps();
    });

ターミナルから php artisan migrate を実行しようとすると、次のエラーが表示されます。

[例外]
SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1075 テーブル定義が正しくありません。auto 列は 1 つしか存在できず、キーとして定義する必要があります (SQL: create table users( idint unsigne d not null auto_increment primary key, usernamevarchar(16) not null, passwordvarchar(64) no t null, roleint not null auto_increment primaryキー、created_atタイムスタンプのデフォルト 0 not null 、updated_atタイムスタンプのデフォルト 0 not null)) (バインディング: 配列 (
))

エラーは「ロール」フィールドに関係しています。これを削除すると正常に動作するようです。

助けや洞察を前もって感謝します。

4

3 に答える 3

13

の 2 番目のパラメーターintegerは、自動インクリメント フラグです。

public function integer($column, $autoIncrement = false, $unsigned = false)

https://github.com/laravel/framework/blob/5.4/src/Illuminate/Database/Schema/Blueprint.php#L510

于 2013-02-18T08:13:11.030 に答える
0
$t->integer('role', false);

それはそれを修正します。

于 2015-07-01T17:48:26.650 に答える