为什么我不能使用多个(选定)复选框附加在laravel关系


Why cant I use multiple (selected ) checkbox to attach a relation in laravel?

我有一个文件模型和用户模型。这两者之间存在多对多关系,例如:

//File model
public function users(){
    return $this->belongsToMany(User::class)
        ->withTimestamps();
}
//User model
public function files(){
    return $this->belongsToMany(File::class);
}

我正在使用一个带有复选框的表单

<input value="1" type="checkbox" name="users[]">
<input value="2" type="checkbox" name="users[]">
<input value="3" type="checkbox" name="users[]">
<input value="4" type="checkbox" name="users[]">

我不想将选定的用户id附加到文件模型,但它不起作用。这是我的方法。

$file = File::find(1);
$file->users()->attach( $request->users )

但是它只记录了一个(第一个)用户到中间表。当我手动输入

时,它会工作
$file->users()->attach( [1,2,3] )

但是$request->用户不工作。我哪里做错了?

问题是因为我使用ajax调用从表单中获取值。这完全超出了我的范围,但(感谢所有人)讨论这个问题让我意识到了这一点。所以我用()来解决它。

$file->users()->attach( explode(',', $request->users);