Laravel使用多个主键迁移创建表

eCo*_*Evo 2 php laravel laravel-4

我发出命令:

php artisan generate:scaffold order --fields="customer_id:integer(11), order_date:date, notes:text”
Run Code Online (Sandbox Code Playgroud)

当它进行迁移时,它以错误结束:

General error: 1 table "orders" has more than one primary key (SQL: create table "orders" ("id" integer not null primary key autoincrement, "customer_id" integer not null primary key autoincrement, "order_date" date not null, "notes" text not null))
Run Code Online (Sandbox Code Playgroud)

我试图customer_id在模式中引用一个Customer模型和相应的表.但是,它不应该是orders表的主键.

以下是up()阻止迁移运行的代码:

    Schema::create('orders', function(Blueprint $table)
    {
        $table->increments('id');
        $table->integer('customer_id', 11);
        $table->date('order_date');
        $table->text('notes');
        $table->timestamps();
    });
Run Code Online (Sandbox Code Playgroud)

我如何让它工作?

Daa*_*aan 6

问题是你使用->integer()带有第二个参数的函数.根据文档,第二个参数需要一个布尔值来设置自动增量:)bool $autoIncrement = false.

试试这个:

Schema::create('orders', function(Blueprint $table)
    {
        $table->increments('id');
        $table->integer('customer_id');
        $table->date('order_date');
        $table->text('notes');
        $table->timestamps();
    });
Run Code Online (Sandbox Code Playgroud)