只有勾选复选框的用户才能取消勾选复选框,或者管理员可以执行此操作,但是当我尝试与任何其他用户一起取消勾选它时,它会在第二次尝试时取消勾选,但在第一次尝试时它会保持勾选状态。
我的控制器文件
public function tickoffUpload($id, $type, User $user) {
$uploads = $this->upload->get($id); //gets upload id
if($this->request->isMethod('get')) {
if($user->can('untick', $uploads) || (Auth::user()->role=='admin')) {
if($type == 0) {
$uploads->uploaded = $this->request->upload = 1;
} else if($type == 1) {
$uploads->uploaded = $this->request->upload = 0;
}
} else {
$uploads->uploaded = 1;
}
}
return redirect('/home');
}
用户政策
public function untick(User $user, Upload $upload) {
return Auth::id() == $upload->user_id;
}