我一直在这里寻找答案,但似乎没有任何效果。我已完成Laravel和Sentry 2的基本安装。首先,我已添加此迁移,以将client_id列添加到users表。
Schema::table('users', function(Blueprint $table)
{
$table->integer('client_id')->unique;
});
接下来我在不同的迁移中创建了我的客户表,其中包含以下内容。
Schema::create('clients', function(Blueprint $table)
{
$table->increments('id');
$table->timestamps();
$table->integer('client_id')->unique;
$table->string('client_name');
$table->date('expiry');
$table->integer('cals');
});
最后,我创建了一个具有以下内容的迁移。
Schema::table('users', function(Blueprint $table)
{
$table->foreign('client_id')
->references('client_id')->on('clients')
->onDelete('cascade');
});
我得到的错误如下;
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `users` add constraint use
rs_client_id_foreign foreign key (`client_id`) references `clients` (`client_id`) on delete cascade)
如果它们都是索引,我有点坚持我应该寻找的东西吗?
答案 0 :(得分:0)
$table->integer('client_id')->unique;
这一行应为:
$table->integer('client_id')->unique();
无论如何,如果您实际上尝试使用'users'表上的外键约束来引用'clients'表中的'id'列,请执行以下操作:
Schema::table('users', function(Blueprint $table)
{
$table->integer('client_id')->unsigned();
$table->foreign('client_id')
->references('id')->on('clients')
->onDelete('cascade');
});
Schema::create('clients', function(Blueprint $table)
{
$table->increments('id');
$table->timestamps();
$table->string('client_name');
$table->date('expiry');
$table->integer('cals');
});