jeudi 4 novembre 2021

I have a this error en laravel : Syntax error or access violation: 1075 Incorrect table definition.How do I solve this problem?

** SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key (SQL: create table loans (id_loan int unsigned not null auto_increment primary key, book_id bigint unsigned not null auto_increment primary key, user_id bigint unsigned not null auto_increment primary key, date_vto date not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci').How do I solve this problem?

**

Migrations

public function up()
{
    Schema::create('books', function (Blueprint $table) {
        $table->increments('id_book');
        $table->string('title');
        $table->integer('amount');
    });
}
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('username');
        $table->string('password');
        $table->string('role');

    });
}
 public function up()
{
    Schema::create('loans', function (Blueprint $table) {
        $table->increments('id_loan');
        $table->bigIncrements('book_id')->unsigned();
        $table->bigIncrements('user_id')->unsigned();
        $table->date('date_vto');

        $table->foreign('book_id')->references('id_book')->on('books')->onDelete('cascade');
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
    });
}

Models books

public function loans(){
    return $this->hasMany(Loans::class);
}

Models Loans

public function books()
{
    return $this->belongsTo(Books::class, 'book_id', 'id_book');
}
public function users()
{
    return $this->belongsTo(Users::class, 'user_id', 'id');
}

Models Users

public function loans(){
        return $this->hasMany(Loans::class);
    }


via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire