0

只有勾选复选框的用户才能取消勾选复选框,或者管理员可以执行此操作,但是当我尝试与任何其他用户一起取消勾选它时,它会在第二次尝试时取消勾选,但在第一次尝试时它会保持勾选状态。

我的控制器文件

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;
}

4

1 回答 1

0

我已经再次修复它......这是错误

        if($type == 0) {
            $uploads->uploaded = $this->request->upload = 1;

        } else if($type == 1) {
              if($user->can('untick', $uploads) || (Auth::user()->role=='admin')) {
                   $uploads->uploaded = $this->request->upload = 0;  
                 }
               }

需要将政策置于取消勾选状态,我将其放在它之前。

于 2016-09-05T13:36:17.427 回答