我有一个文件模型和用户模型。这两者之间存在多对多关系,例如:
//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);