** 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