epowah epowah - 1 month ago 18
MySQL Question

Duplicate column name Laravel

I'm creating migration in laravel and when I run command

php artisan migrate
the cmd give me error Duplicate column name 'user_id' ('id' int unsigned not null auto_increment primary key, 'user_id' int unsigned not null, 'user_id' int not null, 'order_id_' int unsigned not null, 'order_id' int not null) default character set utf8 collate utf8_unicode_ci)

This is my migration:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUserOrrderTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('user_orrder', function (Blueprint $table) {

$table->increments('id');

$table->integer('user_id')->unsigned();
$table->integer('user_id')->references('id')->on('users');

$table->integer('order_id')->unsigned();
$table->integer('order_id')->references('id')->on('orders');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('user_orrder');
}
}

Answer

Your code should be as:

$table->foreign('user_id')->references('id')->on('users');

instead of $table->integer('user_id')->references('id')->on('users');

Read the docs.