我在一个新的Laravel 4项目中进行了几次迁移.一个是区域,另一个是区域.每个区域都有许多区域,区域属于区域.
我曾经多次使用过Laravel 4和迁移功能,但之前从未遇到过这个问题.当我运行php artisan migrate:install后,php artisan migrate我得到以下错误:
$ php artisan migrate
[Exception]
SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'region_
id' doesn't exist in table (SQL: alter table `areas` add constraint areas_r
egion_id_foreign foreign key (`region_id`) references `regions` (`id`)) (Bi
ndings: array (
))
migrate [--bench[="..."]] [--database[="..."]] [--path[="..."]] [--package[="...
"]] [--pretend] [--seed]
Run Code Online (Sandbox Code Playgroud)
//区域迁移
class CreateRegionsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
// …Run Code Online (Sandbox Code Playgroud) 我发出命令:
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)
我如何让它工作?