У меня проблема с моей сводной таблицей в laravel У меня есть Product
, Category
таблицы с сводной таблицей category_product
, определенной как
Schema::create('category_product', function (Blueprint $table) {
$table->increments('id');
$table->integer('category_id')->unsigned();
$table->integer('product_id')->unsigned();
});
, тогда в моем классе продукта
public function categories()
{
return $this->belongsToMany(Category::class);
}
и в классе категории
public function products()
{
return $this->belongsToMany(Product::class);
}
, когда я пытаюсь это сделать
$product->categories()->attach(Category::find([3,4]));
поведение несколько забавное, когда только одна категория присоединяется и при повторной попытке я получаю mysql ошибку
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3' for key 'PRIMARY' (SQL: insert into `category_product` (`category_id`, `id`, `product_id`) values (0, 3, 2), (1, 4, 2))
, что очень странно. затем я взглянул на базу данных и получил