我认为你需要充实他们将如何相关。现在,根据你的关系代码,Categories表中应该有一个user_id
。
这是类型模型之间的关系应该是什么样子:
public function users()
{
return $this->belongsToMany(User::class);
}
而你需要一个名为category_user
一个表,让这一关系。这里的迁移是什么样子的例子:
Schema::create('category_user', function (Blueprint $table) {
$table->increments('id');
$table->integer('category_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->timestamps();
$table->foreign('category_id')->references('id')->on('categories');
$table->foreign('user_id')->references('id')->on('users');
})
然后,你可以将用户添加到类别在以下几个方面:
$category->users()->attach(Auth::id());
Auth::user()->categories()->attach([ 1, 2, 3 ... ]);
,并删除:
$category->users()->detach(Auth::id());
Auth::user()->categories()->detach([ 1, 2, 3 ... ]);
您也可以使用sync
,它可以分离不在阵列上的任何元素,并附加当前未连接的任何元素:
Auth::user()->categories()->sync([ 1, 2, 3, ... ]);
然后返回我:'SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'user_id'(SQL:从'categories'中删除,其中'user_id' = 1)' – Darama
如果分类模型属于给用户,就像你在你的代码中写的那样,类别表应该有一个列user_id – dparoli
我有三个表:User,Categories,User_categories,所以我需要从User_categories表中删除 – Darama