Merhaba ben bir makaleye etiket yapmaya çalışıyorum arada bir pivot tablo ile fakat makaleyi oluşturuken oto_increment olan articles tablomdaki id sütunu otomatik olarak atmıyor Sctructure baktığım zaman bir sorun yok hatta tabloda manuel olarak satır eklediğim zaman oto_increment olarak arttırıyor
controller şu şekilde
public function store(){
$article = new Article();
$article->user_id = 1;
$article->tags()->attach(request('tags'));
$article->save();
return redirect()->route('index.article');
}
Hardcoding yaptım çünkü şuan öğreniyorum örnekti buda zaten bu şekilde beklediğim bir article oluşturması
request('tags') den array olarak seçilen etikeler geliyor onda sorun yok fakat aldığım hata şu
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'article_id' cannot be null (SQL: insert intoarticle_tag(article_id,tag_id) values (?, 1), (?, 2))
Seçilen etiketlerin id'leri array olarak geliyor zaten sorunsuz almış fakat şuanda üretilen article'ın id sütununu eklemiyor.
tags table şu şekilde:
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
// pivot table
Schema::create('article_tag', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('article_id');
$table->unsignedBigInteger('tag_id');
$table->unique(['tag_id','article_id']);
$table->timestamps();
$table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
});
}
Tag Model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tag extends Model
{
public function articles(){
return $this->belongsToMany(Article::class);
}
}