Reputation: 387
I am trying to add a foreign key to the 'users' table. These are the time stamps of the migration
And this is the code:
Schema::create('types', function (Blueprint $table) {
$table->increments('id');
$table->string('types');
$table->timestamps();
});
Schema::create('users', function (Blueprint $table) {
//...
$table->integer('type')->length(10)->unsigned();
$table->foreign('type')->references('id')->on('types')->onDelete('cascade');
$table->rememberToken();
$table->timestamps();
});
I really don't know what I do wrong.
EDIT Here is what happens after the suggestions which I received
Upvotes: 1
Views: 982
Reputation: 9161
Try to add the foreign key only after you created the table, i.e:
public function up()
{
Schema::create('users', function (Blueprint $table) {
//...
// $table->integer('type')->length(10)->unsigned();
$table->unsignedInteger('type');
$table->rememberToken();
$table->timestamps();
});
Schema::table('users', function (Blueprint $table) {
$table->foreign('type')->references('id')->on('types')->onDelete('cascade');
});
}
And probably its better to use $table->unsignedInteger('type');
Update:
The conclusion is that type
is a reserverd word in MYSQL.
Upvotes: 3