Я пытаюсь синхронизировать c сводную таблицу, но я получаю столбец «article_id» не может быть нулевым. все работает нормально, кроме функции Update , когда я вызываю syn c.
Модель статьи:
public function tags()
{
return $this->belongsToMany('App\Tag', "tag_article", "article_id");
}
Модель тега:
public function article()
{
return $this->belongsToMany('App\Article', "tag_article", "tag_id");
}
Сводная таблица:
Schema::create('tag_article', function (Blueprint $table) {
$table->bigInteger('tag_id')->unsigned()->index();
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
$table->bigInteger('article_id')->unsigned()->index();
$table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
});
Контроллер:
public function create(){
$tags = Tag::pluck('name', 'id');
return view('create', compact('tags'));
}
public function store(CreateArticleRequest $request){
$article = article::create($request->all());
$article->tags()->attach($request->input('tag_list'));
return redirect('create');
}
public function edit(Article $Article){
$tags = Tag::pluck('name', 'id');
return view('edit', compact('article', 'tags'));
}
public function update(Article $article, CreateArticleRequest $request){
$article->update($request->all());
$article->tags()->sync($request->input('tag_list'));
return redirect('create');
}
Идентификаторы тегов, которые я отправляю для синхронизации c:
array:2 [▼
0 => "14"
1 => "16"
]
Я получаю ошибку:
SQLSTATE[23000]: Integrity constraint violation:
1048 Column 'article_id' cannot be null (SQL: insert into `tag_article` (`article_id`, `tag_id`) values (?, 14))
PS: не могу позвонить прикрепить или отсоединить в метод обновления либо (та же ошибка)
Может кто объясните, что не так?